/* INSU 音速国际 · 方向 B（影像主导 / 大留白）设计系统 */
:root{
  --navy:#0A1A2F; --navy-2:#071528; --navy-3:#050D18;
  --ink:#0E1C2B; --body:#5A6C80; --mute:#8A9AAC;
  --line:#E7EFF8; --line-2:#D3E0EE;
  --blue:#0F5391; --blue-lt:#2F9BE0; --blue-pale:#E8F2FB;
  --orange:#F2802B;
  --wrap:1200px;
  --pad-y:clamp(72px,8vw,130px);
  --sans:"Inter","Noto Sans SC",-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:#fff;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3,h4{line-height:1.16;font-weight:700;letter-spacing:-.01em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 clamp(20px,6vw,120px)}

/* ---------- topbar ---------- */
.topbar{background:var(--navy);color:#93AECD;font-size:11.5px}
.topbar .wrap{display:flex;align-items:center;gap:24px;height:44px}
.topbar .phone{display:inline-flex;align-items:center;gap:8px;color:#BBD6F2;white-space:nowrap}
.topbar svg{width:13px;height:13px;flex:none}
.topbar .note{opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar .langs{margin-inline-start:auto;display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.topbar .langs svg{width:13px;height:13px}
.lang-cur{background:rgba(255,255,255,.13);color:#fff;font-weight:600;border-radius:5px;padding:3px 8px}
.lang-soon{opacity:.42}
.lang-sep{opacity:.3}
.topbar a:hover{color:#fff}

/* ---------- nav ---------- */
.nav{background:#fff;box-shadow:0 2px 14px rgba(0,15,31,.06);position:sticky;top:0;z-index:30}
.nav .wrap{display:flex;align-items:center;gap:32px;height:84px}
.logo{display:flex;flex-direction:column;gap:1px;flex:none}
.logo-word{font-weight:900;font-style:italic;font-size:22px;letter-spacing:-.02em;line-height:1.1}
.logo-sub{font-size:11px;color:#55677C;font-weight:500}
.menu{display:flex;gap:20px;margin-inline-start:auto;margin-inline-end:auto}
.menu a{font-size:15px;color:#3A4C60;white-space:nowrap}
.menu a:hover{color:var(--blue)}
.menu a.on{color:var(--blue);font-weight:600}
.navact{display:flex;gap:14px;flex:none}
.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);border-radius:999px;padding:10px 15px;font-size:13.5px;font-weight:500;color:var(--blue)}
.pill svg{width:14px;height:14px}
.pill:hover{border-color:var(--blue-lt)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;border:0;border-radius:10px;padding:13px 24px;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer}
.btn:hover{background:#0C4578}
.btn.lite{background:var(--blue-lt)}
.btn.lite:hover{background:#1F8BD0}
.ghost{display:inline-flex;align-items:center;background:none;border:1px solid var(--line-2);border-radius:10px;padding:13px 22px;font-size:13.5px;font-weight:500;color:var(--blue);font-family:inherit;cursor:pointer}
.ghost.lite{border-color:rgba(255,255,255,.35);color:#fff}
.ghost:hover{border-color:var(--blue-lt)}

/* ---------- hero ---------- */
.hero{position:relative;height:1180px;overflow:hidden;background:var(--navy-2)}
.heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scrim{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,13,26,.92),rgba(5,13,26,.62) 55%,rgba(5,13,26,.45))}
.heroin{position:absolute;inset-inline:0;top:330px;color:#fff}
.badge{font-size:12.5px;color:#DCE7F3;font-weight:500;margin-bottom:28px}
/* ⚠️ H1 字号上限是「反推值」，不要凭手感调大。
   .wrap 在最宽屏下净内容宽只有 960px（max-width 1200 − 2×padding 120），
   而字号在 6.2vw 处就顶到上限、容器却还在继续变窄 → 两个曲线交叉就会换行。
   约束：**该语言最长一行的宽度(em) × 字号 ≤ 960**。
   中文最长行「更专业的供应链管理公司」= 10.89em → 上限 88.2，取 85 留余量。
   改动前请先量（见 skill 的实测方法），1920px 是最常见的踩坑宽度。 */
.hero h1{font-size:min(6.2vw, 85px);line-height:1.15;color:#fff;max-width:1200px}
.hero .hsub{margin-top:28px;max-width:620px;font-size:17px;line-height:1.76;color:#C9D9EB}
.hbtns{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}
.stats{display:flex;gap:56px;margin-top:28px;flex-wrap:wrap}
.stat b{display:block;font-size:30px;font-weight:700;color:#fff;line-height:1.1}
.stat span{font-size:12.5px;color:#D6E4F2}

/* ---------- sections ---------- */
.sec{padding:var(--pad-y) 0;background:#fff}
.sec.alt{background:#F7FAFD}
.sec.dark{background:var(--navy);color:#fff}
.sec.dark h2,.sec.dark h3,.sec.dark h4{color:#fff}
.lede{margin-top:18px;max-width:660px;font-size:16px;line-height:1.8;color:var(--body)}
.sec.dark .lede{color:#93AECD}
h2{font-size:min(3.4vw, 44px)}
.sub2{margin:40px 0 16px;font-size:18px;font-weight:600}
.band{margin:0 0 44px;border-radius:2px;overflow:hidden}
.band img{width:100%;height:clamp(240px,32vw,440px);object-fit:cover}
.more{display:inline-block;margin-top:36px;font-size:14.5px;font-weight:600;color:var(--blue)}
.more.lite{color:#5EB3EC}

/* ---------- home service cards ---------- */
.scards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:48px}
.scard .no{font-size:13px;font-weight:700;color:var(--orange)}
.scard h3{margin:8px 0 12px;font-size:24px}
.scard p{font-size:14px;line-height:1.78;color:var(--body)}
.lcards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px}
.lcard h4{font-size:17px;font-weight:600}
.lcard p{margin-top:10px;font-size:12.5px;line-height:1.7;color:#93AECD}

/* ---------- rate panel ---------- */
.rates{background:var(--navy-2);color:#fff;padding:clamp(40px,5vw,56px) 0}
.rin{display:flex;align-items:center;gap:34px;flex-wrap:wrap}
.rleft{flex:1 1 280px}
.rleft h2{font-size:22px}
.rleft p{margin-top:10px;font-size:13.5px;line-height:1.7;color:#93AECD;max-width:420px}
.rfields{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.field{position:relative;display:flex;flex-direction:column;gap:4px;background:#0B2440;border:1px solid #223D5E;border-radius:12px;padding:11px 34px 11px 16px;min-width:170px}
.field span{font-size:10.5px;color:#7E97B4}
.field b{font-size:14px;font-weight:500;color:#fff}
.field svg{position:absolute;inset-inline-end:12px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:#5B7DA3}

/* ---------- trust ---------- */
.trust{display:grid;grid-template-columns:520px 1fr;gap:48px;align-items:center}
.timg img{width:100%;height:min(46vw,460px);object-fit:cover;border-radius:2px}
.stats.grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px;margin-top:34px}

/* ---------- inner page head ---------- */
.pagehead{padding:56px 0 0;background:linear-gradient(135deg,#081429,#0B2B52);color:#fff}
.crumbs{display:flex;gap:8px;align-items:center;font-size:12.5px;color:#7E97B4}
.crumbs b{color:#fff;font-weight:500}
.pagehead h1{margin-top:16px;font-size:min(4.4vw, 58px);color:#fff}
.plede{margin-top:16px;max-width:760px;font-size:15.5px;line-height:1.8;color:#9FB6D0}
.pagehead .band{margin:44px 0 0;border-radius:0}
.pagehead .band img{height:clamp(200px,26vw,360px)}

/* ---------- content blocks ---------- */
.blocks{display:flex;flex-direction:column;gap:36px}
.block{display:grid;grid-template-columns:300px 1fr;gap:44px}
.bl .no{font-size:13px;font-weight:700;color:var(--orange)}
.bl h3{margin-top:8px;font-size:24px}
.bl .bsub{display:block;margin-top:8px;font-size:12px;color:var(--mute)}
.bdesc{font-size:14px;line-height:1.82;color:var(--body)}
.bpts{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.bpts li{font-size:13.5px;line-height:1.8;color:#3A4C60;padding-inline-start:14px;position:relative}
.bpts li::before{content:"";position:absolute;inset-inline-start:0;top:.72em;width:5px;height:5px;border-radius:50%;background:var(--blue-lt)}
.steps{width:100%;border-collapse:collapse}
.steps td{padding:11px 0;vertical-align:top;border-bottom:1px solid var(--line)}
.steps .pno{width:44px;font-size:13px;font-weight:700;color:var(--orange)}
.steps .pn{width:190px;font-size:14.5px;font-weight:600}
.steps .pd{font-size:13px;line-height:1.75;color:var(--body)}
.sec.dark .steps td{border-color:#1B3355}
.sec.dark .bdesc,.sec.dark .bpts li{color:#93AECD}
.sec.dark .bl .bsub{color:#7E97B4}
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rv blockquote{font-size:14px;line-height:1.8;color:#3A4C60}
.rv figcaption{margin-top:12px;font-size:12.5px;color:var(--mute)}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fld{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line-2);border-radius:10px;padding:13px 16px}
.fld span{font-size:10.5px;color:var(--mute)}
.fld input{border:0;outline:0;font-family:inherit;font-size:14px;color:var(--ink);background:none;padding:0}
.fld input::placeholder{color:#A9B7C6}
.qform .btn{margin-top:14px}

/* ---------- tracking ---------- */
.qh{font-size:20px}
.qrow{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.qbox{flex:1 1 340px;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:16px 20px}
.qbox svg{width:20px;height:20px;color:var(--mute);flex:none}
.qbox input{flex:1;border:0;outline:0;font-family:inherit;font-size:14px;color:var(--ink);background:none}
.qbox input::placeholder{color:#A9B7C6}
.chip{background:var(--blue-pale);color:var(--blue);font-size:11px;font-weight:600;border-radius:6px;padding:5px 10px;white-space:nowrap}
.qhint{margin-top:18px;font-size:12.5px;color:var(--mute)}
.tcards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}
.tcard h4{font-size:13.5px;font-weight:600}
.tcard p{margin-top:7px;font-size:12px;line-height:1.75;color:var(--body)}
.rhead{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.rl{display:flex;align-items:center;gap:12px}
.rno{font-size:20px;font-weight:600}
.rstat{background:var(--blue-pale);color:var(--blue);font-size:13px;font-weight:600;border-radius:999px;padding:7px 14px}
.rupd{margin-top:16px;font-size:11.5px;color:var(--mute)}
.kv{width:100%;border-collapse:collapse;margin-top:22px;background:#F7FAFD;border-radius:16px;padding:10px}
.kv td{padding:11px 30px;font-size:14px}
.kv td:first-child{width:200px;color:var(--mute);font-size:12.5px}
.kv td:last-child{font-weight:500}
.prog{display:flex;gap:6px;margin-top:12px}
.prog i{flex:1;height:6px;border-radius:3px;background:var(--line);display:block}
.prog i.done{background:var(--blue)}
.prog i.cur{background:var(--blue-lt)}
.miles{width:100%;border-collapse:collapse}
.miles td{padding:11px 0;vertical-align:top;border-bottom:1px solid var(--line);font-size:13px}
.miles .mt{width:130px;color:var(--mute);font-size:12px}
.miles .mn{width:280px;font-weight:600}
.miles .md{color:var(--body);font-size:12.5px}
.ctab{width:100%;border-collapse:collapse;margin-top:6px}
.ctab th{font-size:11.5px;font-weight:600;color:var(--mute);text-align:start;padding:8px 0;border-bottom:1px solid var(--line)}
.ctab td{font-size:13px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--body)}
.ctab td:first-child{color:var(--ink);font-weight:500}
.warn{display:flex;gap:14px;align-items:flex-start;margin-top:32px;background:#FDF3E7;border:1px solid #F5D9B0;border-radius:12px;padding:18px 22px}
.warn svg{width:20px;height:20px;color:#C25E12;flex:none;margin-top:2px}
.warn span{font-size:13px;line-height:1.85;color:#8C4A0B}
.acts{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}

/* ---------- cta + footer ---------- */
.cta{background:var(--navy);color:#fff;padding:clamp(48px,6vw,72px) 0}
.ctain{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta h2{font-size:min(2.6vw, 32px)}
.cta p{margin-top:12px;font-size:14px;line-height:1.7;color:#9FB6D0;max-width:600px}
footer{background:var(--navy-3);color:#8FA6BF;padding:clamp(48px,6vw,72px) 0 0;border-top:1px solid rgba(255,255,255,.08)}
.fgrid{display:flex;gap:60px;align-items:flex-start;padding-bottom:44px;flex-wrap:wrap}
.fbrand{flex:1 1 380px;max-width:420px}
.flogo{display:flex;flex-direction:column;gap:1px;margin-bottom:18px}
footer .logo-word{color:#fff}
footer .logo-sub{color:var(--orange);font-size:11.5px;font-weight:500}
.ftag{font-size:13px;line-height:1.85;color:#7E97B4}
.fcontact{margin-top:18px;display:flex;flex-direction:column;gap:9px}
.fcontact p{font-size:12.5px;color:#9DB3CC}
.fcols{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:20px;flex:1 1 620px}
.fcols h4{font-size:13px;font-weight:600;color:#fff;margin-bottom:16px}
.fcols li{font-size:12.5px;line-height:2.1;color:#8FA6BF}
.fbottom{display:flex;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:#6B8299;flex-wrap:wrap}

/* ---------- rtl ---------- */
[dir="rtl"] .heroin,[dir="rtl"] .crumbs,[dir="rtl"] .miles td,[dir="rtl"] .ctab th,[dir="rtl"] .ctab td{text-align:right}
[dir="rtl"] .langs{margin-inline-start:auto}
[dir="rtl"] .field svg{transform:translateY(-50%) scaleX(-1)}
[dir="rtl"] .bpts li{padding-inline-start:14px}
[dir="rtl"] .qr{text-align:right}
[dir="rtl"] .rno,[dir="rtl"] .no{font-family:"Inter",sans-serif}

/* 西文标题比中文占位宽，必须单独缩小字号（中英同版式的关键） */
.lang-cn .hero h1{font-size:min(6.2vw, 85px);line-height:1.15}   /* 10.89em，上限 88.2 */
.lang-en .hero h1{font-size:min(5vw, 74px);line-height:1.14}
.lang-en .pagehead h1{font-size:min(3.6vw, 50px)}
.lang-en h2{font-size:min(2.9vw, 40px)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .menu{display:none}
  .topbar .note{display:none}
  .topbar .wrap{gap:12px}
  .topbar .phone{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:10.5px}
  .langmenu{max-width:calc(100vw - 32px)}
  .trust{grid-template-columns:1fr;gap:32px}
  .scards,.lcards,.tcards,.revs{grid-template-columns:1fr 1fr}
  .block{grid-template-columns:1fr;gap:18px}
  .fcols{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .hero{height:auto;padding:0 0 64px}
  /* 关键：不能写 static —— 非定位元素会绘制在 absolute 的 .heroimg/.scrim 之下，文字会被整块盖住 */
  .heroin{position:relative;top:auto;left:auto;right:auto;padding-top:120px;z-index:2}
  .scards,.lcards,.tcards,.revs{grid-template-columns:1fr}
  .stats{gap:32px}
  .frow{grid-template-columns:1fr}
  .kv td{padding:11px 20px}
  .kv td:first-child{width:130px}
  .miles .mt{width:90px}
  .miles .mn{width:150px}
}

/* ---------- 阿拉伯语（RTL）----------
   西文字体不含阿拉伯字形，必须单独指定；阿拉伯语行高要比拉丁语更高才好读 */
.lang-ar{font-family:"Noto Naskh Arabic","Inter",system-ui,sans-serif;line-height:1.95}
.lang-ar h1,.lang-ar h2,.lang-ar h3,.lang-ar h4{line-height:1.45;letter-spacing:0}
.lang-ar .hero h1{font-size:min(4.4vw, 64px)}
.lang-ar .pagehead h1{font-size:min(3.4vw, 46px)}
.lang-ar h2{font-size:min(2.7vw, 36px)}
.lang-ar .bl h3{font-size:22px}
.lang-ar .logo-word,.lang-ar .stat b,.lang-ar .rno,.lang-ar .no,.lang-ar .pno,.lang-ar .miles .mt{direction:ltr;unicode-bidi:isolate;display:inline-block}
.lang-ar .bpts li::before{top:.85em}
.lang-ar .steps .pn{width:210px}

/* ---------- 语言下拉 ---------- */
.topbar{position:relative;z-index:40}
.langs{margin-inline-start:auto}
.langdd{position:relative}
.langdd>summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;list-style:none;
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.10);border-radius:8px;
  padding:5px 10px;color:#fff;font-weight:600;font-size:11.5px;user-select:none}
.langdd>summary::-webkit-details-marker{display:none}
.langdd>summary::marker{content:""}
.langdd .globe{width:13px;height:13px;opacity:.85}
.langdd .chev{width:12px;height:12px;opacity:.8;transition:transform .18s ease}
.langdd[open]>summary{background:rgba(255,255,255,.16)}
.langdd[open] .chev{transform:rotate(180deg)}
.langmenu{position:absolute;top:calc(100% + 8px);inset-inline-end:0;min-width:168px;
  background:#0E2440;border:1px solid #26435F;border-radius:12px;padding:8px;
  box-shadow:0 20px 44px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:2px;z-index:60}
.langmenu .lang-item{display:block;padding:8px 12px;border-radius:8px;color:#BBD6F2;font-size:12.5px;white-space:nowrap}
.langmenu a.lang-item:hover{background:rgba(255,255,255,.09);color:#fff}
.langmenu .lang-item.is-cur{background:rgba(47,155,224,.24);color:#fff;font-weight:600}
.langmenu .lang-item.is-soon{color:#5C7699;cursor:not-allowed}
[dir="rtl"] .langdd .chev{transform:rotate(0)}
[dir="rtl"] .langdd[open] .chev{transform:rotate(180deg)}

/* 页脚语言列：已上线语言可点 */
.fcols a{color:inherit}
.fcols a:hover{color:#fff;text-decoration:underline}
.fcols li.is-cur{color:#fff;font-weight:600}
.fcols li.is-soon{color:#5C7699}

/* ---------- 法语 / 德语：标题比英语更长，字号单独下压 ---------- */
.lang-fr .hero h1,.lang-de .hero h1{font-size:min(4.4vw, 66px);line-height:1.16}
.lang-fr .pagehead h1,.lang-de .pagehead h1{font-size:min(3.3vw, 46px)}
.lang-fr h2,.lang-de h2{font-size:min(2.6vw, 36px)}
.lang-fr .bl h3,.lang-de .bl h3{font-size:22px}
.lang-fr .bl .bsub,.lang-de .bl .bsub{font-size:11.5px}
.lang-fr .nav .menu a,.lang-de .nav .menu a{font-size:14px}
.lang-fr .stats .stat b,.lang-de .stats .stat b{font-size:27px}
.lang-fr .hero h1{font-size:min(4.2vw, 60px)}   /* 实测 15.21em，960px 下上限 63.1，取 60 */

/* ---------- 挪威语 / 芬兰语：芬兰语复合词更长，字号再压一档 ---------- */
.lang-no .hero h1{font-size:min(4.3vw, 64px);line-height:1.16}
.lang-fi .hero h1{font-size:min(3.9vw, 58px);line-height:1.18}
.lang-no .pagehead h1,.lang-fi .pagehead h1{font-size:min(3.2vw, 44px)}
.lang-no h2,.lang-fi h2{font-size:min(2.5vw, 34px)}
.lang-no .bl h3,.lang-fi .bl h3{font-size:21px}
.lang-no .nav .menu a,.lang-fi .nav .menu a{font-size:14px}
.lang-no .stats .stat b,.lang-fi .stats .stat b{font-size:26px}

/* ---------- 俄语：西里尔字母更宽（约 0.56em），字号需再降；行高略增 ---------- */
.lang-ru{line-height:1.8}
.lang-ru .hero h1{font-size:min(3.6vw, 50px);line-height:1.24}   /* 实测 18.48em，上限 52.0，取 50 */
.lang-ru .pagehead h1{font-size:min(3vw, 42px)}
.lang-ru h2{font-size:min(2.4vw, 32px)}
.lang-ru .bl h3{font-size:20px}
.lang-ru .bl .bsub,.lang-ru .bpts li,.lang-ru .bdesc{font-size:13px}
.lang-ru .nav .menu a{font-size:13.5px}
.lang-ru .stats .stat b{font-size:25px}
.lang-ru .btn,.lang-ru .pill{font-size:14px}

/* ---------- 意大利语 ---------- */
.lang-it .hero h1{font-size:min(4.3vw, 64px);line-height:1.16}
.lang-it .pagehead h1{font-size:min(3.2vw, 44px)}
.lang-it h2{font-size:min(2.5vw, 34px)}
.lang-it .bl h3{font-size:21px}
.lang-it .nav .menu a{font-size:14px}

/* 手机：首屏数据条排成整齐 2×2，避免 3+1 落单 */
@media (max-width:720px){
  .stats{gap:20px 28px}
  .stat{flex:1 1 calc(50% - 14px);min-width:0}
  .heroin{padding-top:96px}
}

/* 查价面板：改为真实下拉后的样式 */
.field select{background:none;border:0;outline:0;color:#fff;font:inherit;font-size:14px;
  padding:0;min-width:118px;cursor:pointer;appearance:none;-webkit-appearance:none}
.field select option{background:#0B2440;color:#fff}
.field::after{content:"";position:absolute;inset-inline-end:14px;top:50%;width:7px;height:7px;
  border-right:2px solid #5B7DA3;border-bottom:2px solid #5B7DA3;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.field{padding-inline-end:34px}

/* ---------- 页脚瘦身 v2：压缩左侧品牌栏（它比右边四列高，导致右下大片空位） ---------- */
footer{padding:min(4vw,44px) 0 0}
.fgrid{gap:40px;padding-bottom:26px}
.fbrand{flex:1 1 320px;max-width:370px}
.flogo{margin-bottom:9px}
.ftag{font-size:12.5px;line-height:1.6}
.fcontact{margin-top:11px;gap:4px}
.fcontact p{font-size:11.5px;line-height:1.45}
.fcols{grid-template-columns:repeat(4,minmax(136px,1fr));gap:14px 16px}
.fcols h4{margin-bottom:9px}
.fcols li{font-size:12px;line-height:1.8}
.fcols>div:last-child ul{columns:2;column-gap:14px}
.fcols>div:last-child li{break-inside:avoid}
.fcols a{display:inline-block}
.fbottom{padding:12px 0;font-size:11.5px}

/* 页脚根因修复：品牌栏与四列必须并排 —— 之前 fgrid 换行导致上下叠成两行（又高、右下又空） */
.fgrid{flex-wrap:nowrap;align-items:flex-start}
.fbrand{flex:0 0 340px;max-width:340px}
.fcols{flex:1 1 auto;min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fcols>div{min-width:0}
.fcols li{overflow-wrap:anywhere}
@media (max-width:900px){ .fgrid{flex-wrap:wrap} .fbrand{flex:1 1 100%;max-width:none} }

/* 跟踪查询三态（此前被页脚替换误删，补回） */
.qbox{transition:border-color .16s ease,background .16s ease}
.qbox.is-bad{border-color:#F0A46A;background:#FFF9F3}
.qerr{margin-top:10px;font-size:12.5px;color:#C25E12}
.qerr:empty{display:none}
.result.flash{animation:insuFlash 1.2s ease-out}
@keyframes insuFlash{0%{box-shadow:inset 3px 0 0 0 var(--blue-lt)}60%{box-shadow:inset 3px 0 0 0 var(--blue-lt)}100%{box-shadow:inset 3px 0 0 0 transparent}}

/* 跟踪结果顶部提示条：示例数据 / 查无此单 / 数据源不可达 / 查询中 */
.rnote{margin:0 0 22px;font-size:12.5px;line-height:1.7;color:var(--mute);background:#F4F8FC;border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.rnote.is-bad{background:#FFF9F3;border-color:#F5D9B0;color:#8C4A0B}
/* 吸顶导航高 84px：查询后 scrollIntoView 会把结果区顶到视口顶部，
   不留 scroll-margin 的话柜号与状态徽章会被导航压住。 */
.result{scroll-margin-top:104px}
/* 数值格加 dir="ltr" 是为了修 RTL 下的 bidi 重排（"4 / 8" 会显示成 "8 / 4"），
   但 dir 会把该格默认对齐翻成左；这里保持它仍靠标签一侧（RTL 下行首在右）。 */
[dir="rtl"] .kv td[dir="ltr"]{text-align:right}

/* 页脚最后平衡：品牌栏压到与四列接近，消除右下残余空位 */
.fcontact p{font-size:11px;line-height:1.4}
.fcontact{gap:3px}
.flogo{margin-bottom:8px}
.ftag{font-size:12px}
.fcols li{line-height:1.95}
.fcols h4{margin-bottom:12px}

/* ============ 承运人 logo 墙 ============
   素材取自老站 yy_partner（原 25 条含重复与非船司条目），已剔除「美的 Midea」
   （货主/制造商）与「Emirates」（航空品牌字）。图片统一处理为 300×130 白底画布，
   宽度 100% 等比缩放即可天然对齐，无需逐张调尺寸。 */
.carriers{padding:76px 0;background:#fff}
.carriers .ch{font-size:min(2.7vw,30px)}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(146px,1fr));gap:14px;margin-top:28px}
.clogo{display:flex;align-items:center;justify-content:center;background:#fff;
       border:1px solid var(--line);border-radius:12px;padding:6px;
       transition:border-color .18s ease,box-shadow .18s ease}
.clogo img{width:100%;height:auto;display:block}
.clogo:hover{border-color:#cfdcea;box-shadow:0 4px 14px rgba(13,27,42,.05)}
@media (max-width:900px){
  .carriers{padding:56px 0}
  .cgrid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin-top:22px}
  .carriers .ch{font-size:21px}
}

/* ============ logo 第三行：完整法定公司名 ============
   用户要求 logo 处能看到公司全称。9px + 收紧字距 + 不换行；
   英文全称 48 字符，约 250px 宽（header 在 ≤720px 改为两行排布来容纳）。 */
/* logo 的第二行 = 完整法定公司名（**替换**掉原来的品牌短语，不是另加一行）。
   英文全称 48 字符，10px + 收紧字距约 245px，仍在 header 余量内。 */
.logo-legal{font-size:9.5px;color:#55677C;font-weight:500;letter-spacing:.005em;
            white-space:nowrap;line-height:1.3;text-transform:uppercase}

/* ============ 手机端 header 两行排布（修横向溢出）============
   原来 1080px 以下只隐藏了 .menu，logo 与两个按钮仍然并排：
   360~430px 下 文档宽被撑到 493px，整页可以横向拖动。
   实测：360px→493、390px→494、430px→497（均应等于视口宽）。 */
@media (max-width:720px){
  .nav .wrap{height:auto;flex-wrap:wrap;gap:10px;padding-block:11px}
  .logo{flex:1 1 100%}
  .logo-word{font-size:20px}
  .logo-legal{font-size:9px}
  .navact{flex:1 1 100%;gap:10px}
  .navact .pill,.navact .btn{flex:1 1 0;justify-content:center;padding:9px 10px;font-size:13px}
}

/* ============ header 挤压区间：收起 pill，保住导航 ============
   logo 加上完整法定名后（英文 48 字符 ≈ 245px），header 的最小内容宽约 1050px，
   加上 .wrap 的两侧 padding（最多 240px），1081~1240px 视口会整页横向滚动。
   这里**只隐藏「Track Container」pill**（跟踪在导航菜单里仍有入口），
   而不是隐藏整个导航 —— 否则 1280 笔记本上就没有菜单了。
   ≤1080 时菜单本身会隐藏，pill 必须留着，所以下限卡在 1081。 */
@media (min-width:1081px) and (max-width:1240px){
  .navact .pill{display:none}
}

/* 俄语的菜单与按钮标签最长（菜单 494px、按钮组 391px），header 内容合计 1202px，
   要到视口约 1370px 才放得下 —— 比英文还宽 96px。因此俄语的 pill 收起区间要更长。
   实测各语言「需要的最小视口」：ru≈1370 / de≈1240 / en·it≈1190 / fr≈1170 / ar≈1150。 */
@media (min-width:1081px) and (max-width:1380px){
  .lang-ru .navact .pill{display:none}
}

/* 页脚 logo 的第二行 = 完整法定名。页脚背景是深色 (#050D18)，
   基础规则的 #55677C 在这里对比度不够，改用页脚正文同色 #8FA6BF。 */
footer .logo-legal{color:#8FA6BF}
