/* ===================================================================
     OIIO 2.0 — 「中国で造り、あなたの港へ。」
     纸白 + 深墨 + 铜。衬线标题、等宽标签、大留白。
     =================================================================== */
  :root{
    /* 浅色主体 */
    --bg:#F4F1EA;        /* 纸白 */
    --bg2:#EDE8DD;       /* 次级纸 */
    --bg3:#E2DCD0;
    --fg:#15171B;        /* 墨 */
    --fg2:#5C6269;
    --fg3:#8A8F96;
    --line:rgba(21,23,27,.13);
    --line2:rgba(21,23,27,.26);
    --accent:#9C4A2B;    /* 铜 */
    --accent-soft:rgba(156,74,43,.09);
    --serif:"Instrument Serif","Noto Serif JP","Hiragino Mincho ProN",Georgia,serif;
    --sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans","Noto Sans JP",sans-serif;
    --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;
    --pad:clamp(22px,4.6vw,64px);
    --ease:cubic-bezier(.22,.72,.24,1);
  }
  /* 深色作用域：hero / sec--ink / contact / footer / 地图 */
  .hero,.sec--ink,.contact,.ft,.split-ink,.partners,.section--ink{
    --bg:#131519; --bg2:#1A1D22; --bg3:#22262C;
    --fg:#F3F0E9; --fg2:#A7A39B; --fg3:#7C7C77;
    --line:rgba(255,255,255,.13); --line2:rgba(255,255,255,.26);
    --accent:#CE835B; --accent-soft:rgba(206,131,91,.12);
    background:var(--bg); color:var(--fg);
  }
  *{box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
       font-size:16px;line-height:1.75;letter-spacing:.01em;
       -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  a{color:inherit;text-decoration:none}
  img{max-width:100%}
  ::selection{background:var(--accent);color:#fff}
  .container{max-width:1320px;margin:0 auto;padding:0 var(--pad)}
  .grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.035;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

  /* ===== header ===== */
  .hd{position:sticky;top:0;z-index:40;background:rgba(244,241,234,.88);
      backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
      border-bottom:1px solid var(--line)}
  .hd__in{display:flex;align-items:center;gap:34px;height:78px}
  .logo{font:500 14px/1 var(--sans);letter-spacing:.42em;color:var(--fg)}
  .nav{display:flex;gap:26px;margin-left:auto;font:400 12.5px/1 var(--sans);letter-spacing:.02em}
  .nav a{color:var(--fg2);transition:color .18s;display:flex;gap:7px;align-items:baseline;padding-bottom:4px;
         border-bottom:1px solid transparent}
  .nav a i{font:400 8.5px/1 var(--mono);letter-spacing:.1em;color:var(--fg3);font-style:normal}
  .nav a:hover{color:var(--fg);border-bottom-color:var(--line2)}
  .nav a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--accent)}
  .hd__cta{margin-left:20px;padding:12px 20px;border:1px solid var(--accent);color:var(--accent);
           font:500 10px/1 var(--mono);letter-spacing:.18em;transition:background .22s,color .22s;white-space:nowrap}
  .hd__cta:hover{background:var(--accent);color:#F4F1EA}
  .nav-toggle{display:none;align-items:center;gap:8px;background:none;border:1px solid var(--line2);
              color:var(--fg2);font:500 10px/1 var(--mono);letter-spacing:.14em;padding:9px 13px;
              cursor:pointer;border-radius:0}
  .nav-toggle:hover{color:var(--fg);border-color:var(--accent)}
  @media(max-width:1279px){
    .nav-toggle{display:inline-flex}
    .nav{display:none}
    .nav[data-open="true"]{
      display:flex;flex-direction:column;gap:0;margin:0;position:absolute;left:0;right:0;top:78px;
      background:#FBFAF6;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
      padding:8px var(--pad) 18px;z-index:60;font-size:14px;letter-spacing:.02em;
      box-shadow:0 24px 48px rgba(21,23,27,.12)}
    .nav[data-open="true"] a{padding:15px 0;border-bottom:1px solid var(--line);color:var(--fg);border-bottom-style:solid}
    .nav[data-open="true"] a:last-child{border-bottom:0}
    .hd{position:relative;overflow:visible}
    .hd__in{gap:12px}
    .hd__cta{padding:0 12px;font-size:9px;letter-spacing:.1em;height:34px;display:inline-flex;align-items:center}
    .logo{letter-spacing:.24em;font-size:12.5px}
  }

  /* ===== 言語ドロップダウン ===== */
  .langdd{position:relative;margin-left:20px}
  .langdd__btn{display:flex;align-items:center;gap:7px;padding:10px 13px;
    background:none;border:1px solid var(--line2);color:var(--fg2);cursor:pointer;
    font:500 10px/1 var(--mono);letter-spacing:.16em;transition:border-color .18s,color .18s}
  .langdd__btn:hover,.langdd__btn[aria-expanded="true"]{border-color:var(--accent);color:var(--fg)}
  .langdd__btn .cur{color:var(--fg)}
  .langdd__btn .car{font-size:7px;line-height:1;transition:transform .2s;color:var(--fg3)}
  .langdd__btn[aria-expanded="true"] .car{transform:rotate(180deg)}
  .langdd__menu{position:absolute;top:calc(100% + 8px);right:0;min-width:176px;z-index:60;
    background:#FBFAF6;border:1px solid var(--line2);padding:5px 0;
    opacity:0;pointer-events:none;transform:translateY(-4px);
    transition:opacity .16s,transform .16s;
    box-shadow:0 18px 40px rgba(21,23,27,.14)}
  .langdd__menu[data-open="true"]{opacity:1;pointer-events:auto;transform:translateY(0)}
  .langdd__menu a{display:flex;align-items:center;gap:10px;padding:11px 15px;
    font:400 12.5px/1 var(--sans);color:var(--fg2);transition:background .14s,color .14s}
  .langdd__menu a:hover{background:var(--accent-soft);color:var(--fg)}
  .langdd__menu a .code{font:500 9px/1 var(--mono);letter-spacing:.14em;color:var(--fg3);min-width:2.2em}
  .langdd__menu a[aria-current="true"]{color:var(--fg)}
  .langdd__menu a[aria-current="true"] .code{color:var(--accent)}
  @media(max-width:479px){.langdd{margin-left:8px}.langdd__menu{min-width:152px}}

  /* ===== 1 hero（全幅图 + 叠加文字） ===== */
  .hero{position:relative;min-height:min(90vh,860px);display:flex;align-items:flex-end;
        overflow:hidden;background:#131519;color:#F3F0E9}
  .hero__bg{position:absolute;inset:0;z-index:0}
  .hero__bg img{width:100%;height:100%;object-fit:cover;display:block;
                filter:saturate(.9) contrast(1.04) brightness(.94)}
  .hero__bg::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(10,11,13,.42) 0%,rgba(10,11,13,.20) 34%,rgba(10,11,13,.86) 100%)}
  .hero__in{position:relative;z-index:2;padding-block:clamp(72px,13vh,140px) clamp(40px,6vh,64px);width:100%}
  .eyebrow{display:block;font:500 10px/1 var(--mono);letter-spacing:.34em;color:#D8A183;margin:0 0 30px}
  .hero h1{margin:0 0 26px;font:400 clamp(34px,5.2vw,74px)/1.14 var(--serif);
           letter-spacing:.005em;max-width:20em;color:#F7F4ED}
  .hero h1 em{font-style:italic;display:block;color:#DCA083;margin-top:.06em}
  .hero__lead{max-width:36rem;font-size:clamp(13.5px,1.15vw,15.5px);line-height:2.05;color:#C4C0B7;margin:0 0 44px}
  .hero__lead strong{color:#F7F4ED;font-weight:500}
  .hero__btns{display:flex;gap:14px;flex-wrap:wrap}
  .hero__cap{margin:clamp(40px,7vh,72px) 0 0;display:flex;gap:14px;align-items:baseline;
             font:400 10px/1.6 var(--mono);letter-spacing:.16em;color:rgba(243,240,233,.55);
             border-top:1px solid rgba(255,255,255,.16);padding-top:16px;max-width:36rem}
  .hero__cap span{color:#DCA083}
  .btn{padding:17px 32px;font:500 10.5px/1 var(--mono);letter-spacing:.2em;border:1px solid;
       transition:background .22s,color .22s,border-color .22s;display:inline-block}
  .btn--primary{background:var(--accent);border-color:var(--accent);color:#12141A}
  .btn--primary:hover{background:transparent;color:var(--accent)}
  .btn--ghost{border-color:var(--line2);color:var(--fg2)}
  .btn--ghost:hover{border-color:var(--fg);color:var(--fg)}

  /* ===== 2 stats ===== */
  .stats{border-bottom:1px solid var(--line);background:var(--bg)}
  .stats__in{display:grid;grid-template-columns:repeat(4,1fr)}
  @media(max-width:767px){.stats__in{grid-template-columns:repeat(2,1fr)}}
  .stat{padding:44px 32px 44px 0;border-right:1px solid var(--line);margin:0}
  .stat:nth-child(2n+1){padding-left:0}
  .stat:last-child{border-right:0;padding-right:0}
  .stat dt{font:500 9px/1 var(--mono);letter-spacing:.26em;color:var(--fg3);margin-bottom:16px}
  .stat dd{margin:0;font:400 clamp(30px,3vw,44px)/1 var(--serif);letter-spacing:-.01em;
           font-variant-numeric:tabular-nums;color:var(--fg)}
  .stat dd span{font:400 11.5px/1 var(--sans);color:var(--fg2);margin-left:8px;letter-spacing:.06em}
  @media(max-width:767px){
    .stat{padding:32px 18px 32px 0}
    .stat:nth-child(2n){border-right:0;padding-right:0}
    .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  }

  /* ===== section 通用 ===== */
  .sec{padding:clamp(76px,10vw,148px) 0;border-bottom:1px solid var(--line);position:relative;z-index:2}
  .sec--ink{background:var(--bg);color:var(--fg)}
  .sec--alt{background:var(--bg2)}
  .sec__hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:clamp(20px,5vw,72px);
           align-items:end;margin-bottom:clamp(40px,6vw,76px)}
  .sec__idx{display:block;grid-column:1/-1;font:500 10px/1 var(--mono);letter-spacing:.3em;color:var(--accent);
            margin-bottom:6px}
  .sec__title{margin:0;font:400 clamp(26px,3.5vw,48px)/1.32 var(--serif);letter-spacing:.005em;color:var(--fg)}
  .sec__desc{margin:0;max-width:32rem;font-size:13.5px;line-height:2;color:var(--fg2);justify-self:end}
  @media(max-width:900px){
    .sec__hd{grid-template-columns:1fr}
    .sec__desc{justify-self:start}
  }

  /* ===== 3 説明 ===== */
  .about{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.85fr);
         gap:clamp(32px,6vw,88px);align-items:start}
  .statement{max-width:40rem}
  .statement p{margin:0 0 26px;font:300 clamp(15px,1.5vw,19px)/2.15 var(--sans);color:var(--fg)}
  .statement p:last-child{margin:0;color:var(--fg2);font-size:13.5px;line-height:2.1}
  .about__fig{margin:0}
  .about__fig img{width:100%;display:block;border:1px solid var(--line);filter:saturate(.92) contrast(1.02)}
  .about__fig figcaption{margin-top:14px;font:400 10.5px/1.6 var(--mono);letter-spacing:.14em;color:var(--fg3)}
  @media(max-width:900px){.about{grid-template-columns:1fr}}

  /* ===== 4 強み ===== */
  .strengths{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
             border-top:1px solid var(--line2)}
  @media(max-width:1023px){.strengths{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.strengths{grid-template-columns:1fr}}
  .str{padding:34px 30px 38px 0;border-right:1px solid var(--line)}
  .str:last-child{border-right:0}
  @media(max-width:1023px){.str{border-bottom:1px solid var(--line)}.str:nth-child(2n){border-right:0}}
  @media(max-width:560px){.str{border-right:0;padding-right:0}}
  .str__n{font:500 10px/1 var(--mono);letter-spacing:.26em;color:var(--accent);display:block;margin-bottom:30px}
  .str h3{margin:0 0 14px;font:400 19px/1.45 var(--serif);letter-spacing:.01em;color:var(--fg)}
  .str p{margin:0;font-size:12.5px;line-height:1.95;color:var(--fg2)}

  /* ===== 5 工程 ===== */
  .steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);
         border-top:1px solid var(--line2)}
  @media(max-width:1023px){.steps{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.steps{grid-template-columns:1fr}}
  .step{padding:34px 26px 36px 0;border-right:1px solid var(--line);position:relative;margin:0}
  .step:last-child{border-right:0}
  @media(max-width:1023px){.step{border-bottom:1px solid var(--line)}.step:nth-child(2n){border-right:0}}
  @media(max-width:520px){.step{border-right:0}}
  .step__n{display:block;font:400 24px/1 var(--serif);color:var(--accent);margin-bottom:22px;font-variant-numeric:tabular-nums}
  .step h3{margin:0 0 12px;font-size:15px;font-weight:500}
  .step p{margin:0;font-size:12px;line-height:1.95;color:var(--fg2)}

  /* ===== 6 News ===== */
  .news{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
  .news li a{display:flex;gap:30px;padding:24px 0;border-bottom:1px solid var(--line);
             align-items:baseline;transition:background .18s,padding .18s}
  .news li a:hover{background:var(--accent-soft);padding-inline:12px}
  .news time{font:400 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--fg3);white-space:nowrap}
  .news .cat{font:500 9px/1 var(--mono);letter-spacing:.16em;color:var(--accent);
             border:1px solid var(--line2);padding:5px 9px;white-space:nowrap}
  .news .ttl{font-size:14px;color:var(--fg)}
  @media(max-width:639px){.news li a{flex-wrap:wrap;gap:10px}}

  /* ===== 7 contact ===== */
  .contact{padding:clamp(76px,10vw,148px) 0;background:var(--bg);color:var(--fg)}
  .contact__in{display:flex;align-items:flex-end;gap:48px;flex-wrap:wrap}
  .contact h2{margin:0;font:400 clamp(28px,4vw,56px)/1.25 var(--serif);color:var(--fg)}
  .contact p{margin:18px 0 0;font-size:13.5px;color:var(--fg2);line-height:2;max-width:34rem}
  .contact__btns{margin-left:auto;display:flex;gap:12px;flex-wrap:wrap}
  @media(max-width:767px){.contact__btns{margin-left:0;width:100%}.contact__btns .btn{flex:1;text-align:center}}

  /* ===== footer ===== */
  .ft{padding:64px 0 44px;font-size:12px;color:var(--fg3);border-top:1px solid var(--line);
      position:relative;z-index:2;background:var(--bg);color:var(--fg3)}
  .ft__in{display:flex;gap:48px;flex-wrap:wrap;align-items:flex-start}
  .ft__brand{font:400 26px/1 var(--serif);letter-spacing:.24em;color:var(--fg);margin-bottom:18px}
  .ft__links{display:flex;gap:26px;margin-left:auto;font-size:12px}
  .ft__links a{color:var(--fg2)}.ft__links a:hover{color:var(--fg)}
  .ft__bot{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);
           display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
           font:400 9.5px/1 var(--mono);letter-spacing:.16em}
  .demo{position:fixed;left:0;right:0;bottom:0;z-index:99;background:rgba(156,74,43,.96);color:#fff;
        font:500 10px/1.5 var(--mono);letter-spacing:.1em;padding:8px 16px;text-align:center}

/* ===== 内页 ===== */
.page-hero{padding:clamp(64px,8vw,112px) 0 clamp(36px,5vw,56px);border-bottom:1px solid var(--line)}
.page-hero .eyebrow{color:var(--accent);margin-bottom:24px}
.page-hero h1{font:400 clamp(30px,4.2vw,56px)/1.22 var(--serif);letter-spacing:.005em;margin:0;color:var(--fg)}
.page-hero__lead{margin:22px 0 0;max-width:46rem;color:var(--fg2);font-size:14.5px;line-height:2}

.vt__wrap{display:flex;flex-direction:column;gap:76px}
.vt__group{scroll-margin-top:96px}
.vt__gh{display:flex;align-items:baseline;gap:14px;margin:0 0 22px;
        font:400 22px/1.3 var(--serif);letter-spacing:.01em}
.vt__num{font:400 11px/1 var(--mono);letter-spacing:.18em;color:var(--accent)}
.vt__count{margin-left:auto;font:400 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--fg3)}

.vt{width:100%;border-collapse:collapse;font-size:13.5px}
.vt th{text-align:left;font:500 9.5px/1 var(--mono);letter-spacing:.18em;color:var(--fg3);
       text-transform:uppercase;padding:0 16px 14px;border-bottom:1px solid var(--line2);white-space:nowrap}
.vt td{padding:18px 16px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--fg2)}
.vt tr:hover td{background:var(--accent-soft)}
.vt__name a{color:var(--fg);font-weight:500;transition:color .18s}
.vt__name a:hover{color:var(--accent)}
.vt__mono{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--fg);white-space:nowrap}
.vt__spec{font-size:12.5px;line-height:1.75}
.vt__body{font-size:12.5px;line-height:1.75;color:var(--fg3)}

@media(max-width:900px){
  .vt{display:block;overflow-x:auto;white-space:nowrap}
  .vt__spec,.vt__body{white-space:normal;min-width:14rem}
}
@media(max-width:767px){
  .vt__wrap{gap:52px}
}

/* ===== 事業内容页（2026-10-25，含原 強み 内容） ===== */
.prose{max-width:46rem}
.prose p{margin:0 0 20px;font-size:15px;line-height:1.95;color:var(--fg2)}
.prose p:last-child{margin-bottom:0}

.biz{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.biz__item{padding:32px 28px 32px 0;border-right:1px solid var(--line)}
.biz__item:last-child{border-right:0}
.biz__num{font:500 9px/1 var(--mono);letter-spacing:.24em;color:var(--accent);display:block;margin-bottom:24px}
.biz h3{margin:0 0 12px;font-size:16px;font-weight:400;line-height:1.5}
.biz p{margin:0;font-size:12.5px;line-height:1.9;color:var(--fg2);max-width:22rem}
@media(max-width:1023px){
  .biz{grid-template-columns:1fr}
  .biz__item{border-right:0;border-bottom:1px solid var(--line);padding:28px 0}
}

.photo-band{margin:64px 0 0}
.photo-band__ph{height:220px;border:1px solid var(--line);border-radius:1px;
                background:repeating-linear-gradient(135deg,var(--bg2) 0 12px,var(--bg3) 12px 24px)}
.photo-band__cap{display:flex;gap:16px;align-items:baseline;margin-top:14px;flex-wrap:wrap}
.photo-band__tag{font:500 9px/1 var(--mono);letter-spacing:.2em;color:var(--accent)}
.photo-band__text{font-size:12.5px;color:var(--fg3)}

.cta-sec{padding:96px 0;border-top:1px solid var(--line)}
.cta-sec__in{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta-sec__h{margin:0;font:600 clamp(20px,2.4vw,30px)/1.3 var(--sans);letter-spacing:-.01em}
@media(max-width:767px){.cta-sec{padding:64px 0}}

/* ===== 车辆详情页（2026-10-25） ===== */
.vd{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:64px;align-items:start}
.vd__media{position:sticky;top:96px}
.vd__ph{aspect-ratio:3/2;border:1px solid var(--line);border-radius:1px;
        background:repeating-linear-gradient(135deg,var(--bg2) 0 14px,var(--bg3) 14px 28px)}
.vd__side{min-width:0}
.vd__h{margin:0 0 18px;font:500 10px/1 var(--mono);letter-spacing:.18em;color:var(--accent);
       text-transform:uppercase}
.vd__h + .vd__table{margin-bottom:44px}
.vd__table{width:100%;border-collapse:collapse;font-size:13.5px}
.vd__table th{text-align:left;padding:11px 0;border-bottom:1px solid var(--line);
              font-weight:400;color:var(--fg3);white-space:nowrap;width:38%;vertical-align:top}
.vd__table td{padding:11px 0;border-bottom:1px solid var(--line);color:var(--fg);
              font-variant-numeric:tabular-nums}
.vd__cta{display:block;text-align:center;margin-top:8px}
.vd__back{display:block;text-align:center;margin-top:12px}
.vd__note{margin:20px 0 0;font-size:11.5px;line-height:1.8;color:var(--fg3)}

@media(max-width:1023px){
  .vd{grid-template-columns:1fr;gap:40px}
  .vd__media{position:static}
}

/* ===== 輸出対象页（2026-10-25） ===== */
.ex__count{margin:26px 0 0;font:400 12px/1 var(--mono);letter-spacing:.1em;color:var(--fg3)}
.ex__count strong{font-size:22px;color:var(--accent);margin-right:8px;font-weight:500}
.ex{list-style:none;margin:0;padding:0;display:grid;
    grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;
    background:var(--line);border:1px solid var(--line)}
.ex__item{background:var(--bg);padding:26px 24px;transition:background .2s}
.ex__item:hover{background:var(--bg2)}
.ex__name{font-size:14.5px;letter-spacing:.01em}
.ex__notes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.ex__note{padding:32px 28px 32px 0;border-right:1px solid var(--line)}
.ex__note:last-child{border-right:0}
.ex__note h3{margin:0 0 12px;font-size:16px;font-weight:400;line-height:1.5}
.ex__note p{margin:0;font-size:12.5px;line-height:1.9;color:var(--fg2);max-width:24rem}
@media(max-width:1023px){
  .ex__notes{grid-template-columns:1fr}
  .ex__note{border-right:0;border-bottom:1px solid var(--line);padding:28px 0}
}
@media(max-width:560px){.ex{grid-template-columns:1fr 1fr}}

/* ===== 会社概要页（2026-10-25） ===== */
.co{width:100%;border-collapse:collapse;font-size:14px;max-width:56rem}
.co th{text-align:left;padding:16px 0;border-bottom:1px solid var(--line);
       font-weight:400;color:var(--fg3);white-space:nowrap;width:22%;vertical-align:top;font-size:12.5px}
.co td{padding:16px 0;border-bottom:1px solid var(--line);line-height:1.8}
.co__note{margin:28px 0 0;font-size:11.5px;line-height:1.8;color:var(--fg3)}

/* ===== ニュース页（2026-10-25） ===== */
.news{list-style:none;margin:0;padding:0}
.news__item{display:grid;grid-template-columns:140px 1fr;gap:32px;
            padding:28px 0;border-bottom:1px solid var(--line)}
.news__date{font:400 11.5px/1.6 var(--mono);letter-spacing:.06em;color:var(--fg3);
            font-variant-numeric:tabular-nums}
.news__cat{margin:0 0 8px;font:500 9px/1 var(--mono);letter-spacing:.18em;
           color:var(--accent);text-transform:uppercase}
.news__title{margin:0 0 10px;font-size:17px;font-weight:400;line-height:1.55}
.news__text{margin:0;font-size:13px;line-height:1.9;color:var(--fg2);max-width:44rem}
.news__empty{padding:48px 0;color:var(--fg3);font-size:14px}
.news__note{margin:32px 0 0;font-size:11.5px;color:var(--fg3)}
@media(max-width:767px){.news__item{grid-template-columns:1fr;gap:10px}}

/* ===== お問い合わせ页（2026-10-25） ===== */
.ct{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:80px;align-items:start}
.ct__form{min-width:0}
.ct__row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px}
.ct__f{display:flex;flex-direction:column;gap:8px}
.ct__f--full{margin-bottom:22px}
.ct__f span{font:400 11px/1 var(--mono);letter-spacing:.12em;color:var(--fg3);text-transform:uppercase}
.ct__f span i{color:var(--accent);font-style:normal}
.ct__f input,.ct__f textarea{background:transparent;border:0;border-bottom:1px solid var(--line2);
  color:var(--fg);font:400 14px/1.6 var(--sans);padding:9px 0;transition:border-color .2s;width:100%}
.ct__f input:focus,.ct__f textarea:focus{outline:none;border-bottom-color:var(--accent)}
.ct__f textarea{resize:vertical;min-height:120px}
.ct__hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.ct__check{display:flex;gap:10px;align-items:flex-start;margin:8px 0 24px;
  font-size:12.5px;line-height:1.7;color:var(--fg2);cursor:pointer}
.ct__check input{margin-top:3px;accent-color:var(--accent)}
.ct__submit{min-width:200px}
.ct__msg{margin:16px 0 0;font-size:12.5px;color:var(--accent);min-height:1.2em}
.ct__note{margin:16px 0 0;font-size:11px;line-height:1.7;color:var(--fg3)}
.ct__side{padding-top:6px}
.ct__side-h{margin:0 0 20px;font:500 10px/1 var(--mono);letter-spacing:.18em;
  color:var(--fg3);text-transform:uppercase}
.ct__contact{display:block;font-size:15px;color:var(--fg);padding:10px 0;
  border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.ct__contact:hover{color:var(--accent)}
@media(max-width:1023px){
  .ct{grid-template-columns:1fr;gap:48px}
  .ct__row{grid-template-columns:1fr}
}

/* ===== 车辆一览：卡片网格（结构对齐 oiiolife /stock/，2026-10-25） ===== */
.vc__wrap{display:flex;flex-direction:column;gap:72px}
.vc__group{scroll-margin-top:96px}
.vc__gh{display:flex;align-items:baseline;gap:14px;margin:0 0 24px;
        font:600 16px/1 var(--sans);letter-spacing:.02em}
.vc__num{font:400 11px/1 var(--mono);letter-spacing:.16em;color:var(--accent)}
.vc__count{margin-left:auto;font:400 11px/1 var(--mono);letter-spacing:.1em;color:var(--fg3)}

.vc__grid{list-style:none;margin:0;padding:0;display:grid;
          grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.vc{border:0;background:var(--bg);transition:background .2s}
.vc:hover{background:var(--bg2)}
.vc__link{display:block;color:inherit;text-decoration:none}
.vc__media{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--bg3)}
.vc__ph{width:100%;height:100%;
        background:repeating-linear-gradient(135deg,var(--bg2) 0 12px,var(--bg3) 12px 24px);
        transition:transform 300ms cubic-bezier(.2,.7,.3,1)}
.vc:hover .vc__ph{transform:scale(1.03)}
.vc__status{position:absolute;inset-inline-start:10px;bottom:10px;
  padding:3px 9px;font:500 10px/1.6 var(--mono);letter-spacing:.1em;
  background:rgba(18,20,24,.86);border:1px solid var(--line2);color:var(--fg)}
.vc--negotiating .vc__status{border-color:var(--accent);color:var(--accent)}
.vc--sold .vc__status{border-color:var(--fg3);color:var(--fg3)}
.vc--sold .vc__media,.vc--sold .vc__body{opacity:.55}

.vc__body{padding:18px 20px 22px}
.vc__make{margin:0;font:400 10px/1 var(--mono);letter-spacing:.18em;
          color:var(--fg3);text-transform:uppercase}
.vc__title{margin:6px 0 0;font:500 clamp(15px,1.2vw,17px)/1.5 var(--sans);color:var(--fg)}
.vc:hover .vc__title{color:var(--accent)}
.vc__meta{margin:8px 0 0;font:400 11.5px/1.7 var(--mono);letter-spacing:.02em;color:var(--fg2)}
.vc__price{margin:10px 0 0;font:500 12px/1.6 var(--sans);color:var(--accent);letter-spacing:.04em}
.vc__note{margin:6px 0 0;font-size:11.5px;line-height:1.7;color:var(--fg3)}

@media(max-width:1023px){.vc__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.vc__grid{grid-template-columns:1fr}.vc__wrap{gap:52px}}


/* ===== partners 地图（从 oiiolife 复制，变量已映射到新站） ===== */
/* ============================================================
   oiiolife — partners.css：合作伙伴页专属样式（页组级）
   版本键 ?v=20261077，与全局 ASSET_V 独立计数；
   只在 partners/index.html（9 语）引入。
   ============================================================ */

/* HQ 标记颜色：站内原本没有红色变量。定义在本文件而不是 tokens.css，
   因为 tokens.css 会被合成进 site.css，而 site.css 的 ?v= 走全局 ASSET_V。 */

/* ---------------- 日本地图 HQ 标记（W-20261023-77） ---------------- */
.maps-stack__hq { cursor: pointer; }
/* 触屏命中区（§2.6）：SVG 随容器缩放，同样的 r 在 375 档只有约 13px 物理尺寸，
   所以按档位放大：桌面 r=20（视觉上仍在光晕内），≤767 档 r=66 → 直径约 44px（iOS 触控建议值）。 */
.maps-stack__hq-hit { fill: transparent; pointer-events: all; }
@media (max-width: 767px) {
  .maps-stack__hq-hit { r: 66px; }
}

.maps-stack__hq-halo {
  fill: var(--fg2); opacity: .18;
  transform-box: fill-box;      /* 关键：不加则 transform-origin: center 以 viewBox 为参照，放大会飘 */
  transform-origin: center;
  transition: opacity .25s ease, transform .25s ease;
}
.maps-stack__hq-dot {
  fill: var(--fg2);
  transform-box: fill-box;
  transform-origin: center;
  transition: transform .2s ease;
}
.maps-stack__hq-core { fill: #fff; }
.maps-stack__hq:hover .maps-stack__hq-halo,
.maps-stack__hq:focus-visible .maps-stack__hq-halo { opacity: .34; transform: scale(1.22); }
.maps-stack__hq:hover .maps-stack__hq-dot,
.maps-stack__hq:focus-visible .maps-stack__hq-dot { transform: scale(1.15); }
.maps-stack__hq:focus-visible { outline: 2px solid var(--fg2); outline-offset: 6px; }
@media (prefers-reduced-motion: reduce) {
  .maps-stack__hq-halo, .maps-stack__hq-dot { transition: none; }
  .maps-stack__hq:hover .maps-stack__hq-halo,
  .maps-stack__hq:focus-visible .maps-stack__hq-halo { transform: none; }
}

/* ---------------- 非贸易地区提亮（W-20261023-77 §2.5） ----------------
   全局 --fg2 是 rgba(255,255,255,.035)，叠在 #171B1F 上约 rgb(31,35,39)，与背景差仅 8。
   这里提到 .10（≈rgb(46,50,53)，差 23），仍低于贸易国的 .16，层级不倒置，hover 蓝更高。
   只作用于 .partners 页，不改 tokens.css / site.css 的 --fg2。 */
/* 亮度档位 B（站长 2026-10-23 选定）：非贸易地区 .035→.18（1.09→1.77:1）、
   贸易国 .16→.26（1.64→2.34:1），层级差保持 0.08。 */
.partners .worldmap__rest { fill: rgba(255, 255, 255, .18); }
.partners .worldmap__country path { fill: rgba(255, 255, 255, .26); }

/* 关键：本文件在 pages.css 之后加载，上面那条与 pages.css:683 的
   .worldmap__country:hover path 同特异度(0,2,1)，后写者胜 ⇒ 不重声明的话
   鼠标移到贸易国不再变蓝。这里把三态连同 stroke / stroke-width 一起还原，保持原观感。 */
.partners .worldmap__country:hover path,
.partners .worldmap__country:focus-visible path,
.partners .worldmap__country.is-active path {
  fill: var(--fg2);
  stroke: var(--accent);
  stroke-width: 1.1;
}

/* ---------------- 本社信息块与地图的间距（W-20261023-78） ----------------
   改前 svg.maps-stack 底边与 .partners-jp__card 顶边同为 1209px（间距 0），卡片紧贴地图下沿。
   卡片是最后一个流式元素，只加上间距会让容器同步增高、下沿仍压在框线上（改前只差 1px），
   所以上下都给：桌面 24/12、≤1023 档 16/12；右栏 892px vs 地图列 833px，余量足够不撑高整行。 */
.partners .partners-jp__card { margin: 24px 0 12px; }
@media (max-width: 1023px) {
  .partners .partners-jp__card { margin: 16px 0 12px; }
}

/* ---------------- 地址行右侧的办公楼图标（W-20261023-79 §3） ----------------
   链到 /company/#access（ACCESS 区块），hover 上浮 + 变蓝；RTL 由 margin-inline-start 自动镜像，
   图标本身无方向性，不需要 [dir=rtl] 覆盖。 */
.partners-jp__office {
  display: inline-flex;
  align-items: center;
  vertical-align: -2px;
  margin-inline-start: 8px;
  color: var(--fg2);   /* 本页底是深色（.partners__map 实测 rgb(23,27,31)）：
                               --fg2 叠上去只有 1.07:1，肉眼不可见；silver 为 5.95:1 */
  transition: color .2s ease, transform .2s ease;
}
.partners-jp__office:hover,
.partners-jp__office:focus-visible { color: var(--accent); transform: translateY(-2px); }
.partners-jp__office:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .partners-jp__office { transition: none; }
  .partners-jp__office:hover, .partners-jp__office:focus-visible { transform: none; }
}

/* ---------------- 地图国旗填充（W-20261023-81｜方案 D：悬停才显旗） ----------------
   站点调性以灰阶为主，默认不显旗（opacity 0），鼠标移到某国 / 键盘聚焦时才浮现该国国旗。
   指令沿革（避免再来回改）：卡 92 站长要求「所有国家都常显 30%」→ 卡 93 日本也跟上 →
   卡 109（2026-10-24 晚）站长改回「去掉国旗底色，只有鼠标滑过时才显示」= 现在的 0。
   旗面由生成器注入（clipPath 复用国家 path，preserveAspectRatio="xMidYMid slice" 不拉伸）。
   - pointer-events: none：否则旗层挡住国家链接
   - 触屏（hover:none）直接不渲染，避免 tap 后 hover 粘住 */
.worldmap__flag {
  /* 卡 109（最新指令）：静止完全不显（0）；hover / focus-visible / .is-active 才升到 .9，移开回 0。
     历史：卡 92 曾改常显 .3（「一进页面就能看出哪些国家有旗」），卡 109 按站长最新要求撤回。
     日之丸同规则，见 .worldmap__flag--jp。 */
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
.partners .worldmap__country:hover .worldmap__flag,
.partners .worldmap__country:focus-visible .worldmap__flag,
.partners .worldmap__country.is-active .worldmap__flag { opacity: .9; }   /* 三态一致：0.3 → 0.9（卡 92） */

/* 有旗的国家悬停时不再铺蓝底（蓝会透过旗面），改为灰底 + 蓝描边 */
.partners .worldmap__country[data-flag-fill="1"]:hover path,
.partners .worldmap__country[data-flag-fill="1"]:focus-visible path,
.partners .worldmap__country[data-flag-fill="1"].is-active path {
  fill: rgba(255, 255, 255, .26);
  stroke: var(--accent);
  stroke-width: 1.1;
}

@media (hover: none) {
  /* 卡 109：触屏没有 hover，按「只有鼠标滑过才显示」= 手机上不显示国旗（PM 已确认可接受：
     点国家会直接进详情页，国旗不是必要信息）。display 保持 inline，避免布局变化。
     若日后要求手机也显示，另开卡（点击时短暂显示之类），不要在这里改回常显。 */
  .worldmap__flag { display: inline; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .worldmap__flag { transition: none; }
}

/* ---------------- 日本本地图：悬停填日之丸（W-20261023-85） ----------------
   47 条县 path 既是灰阶地图的几何，也是日之丸的裁切路径：给每条加 id 后由
   <use> 复用（复制几何会让整页 gzip +12.6 KB，<use> 只要 +423 B）。
   默认 opacity:0 —— 与国旗层同一套交互（悬停/聚焦才出现），页脚地图保持灰阶。 */
.worldmap__flag--jp { opacity: 0; pointer-events: none; transition: opacity .25s ease; }   /* 卡 109：日之丸同样改为静止不显（原卡 93 常显 30%），悬停日本细图时升到 .92；世界地图上的日本仍是红点，不混入「市场国」。 */
/* 白底不画矩形，直接把县 path 的 fill 改白：轮廓即天然裁切。
   好处是即使 clipPath 里的 <use> 不被支持（空 clip），失效果只是「没有红圆、日本变白」，
   不会出现一块白色矩形盖住地图。 */
.maps-stack__jp:hover .worldmap__flag--jp { opacity: .92; }
.maps-stack__jp:hover .jp-map__prefs { fill: #fff; }
/* 日之丸出现时处理本社标记（P1）：
   ① 两层光晕都隐藏 —— 蓝 r=22（县层内）与红 r=34（世界层锚点）都会溢出海岸线，
      在红底/海面上变成一块污渍（实测叠红 1.14:1、叠海 1.18:1，等于没有边界）。
   ② 可见的点是 #E24A3F，落在日之丸红 #BC002D 上只有 1.66:1，加白描边后边缘对比 6.61:1。
   （:focus-within 是死选择器：jp 图内可聚焦元素为 0，且 SVG 根是 aria-hidden，
     不能加 tabindex，故用 :hover 单独承载。） */
/* 选择器必须用兄弟组合子 ~：a.maps-stack__hq 与 g.maps-stack__jp 是 svg 下的相邻兄弟，
   不是父子（写成 .maps-stack__jp:hover .maps-stack__hq-halo 命中不到，本轮实测踩到：
   halo 仍是 .18、棕斑还在）。DOM 顺序是 world → routes → jp → a.hq，所以 ~ 成立。 */
.maps-stack__jp:hover ~ .maps-stack__hq .maps-stack__hq-halo,
.maps-stack__jp:hover .jp-map__hq-halo { opacity: 0; }
/* 两个本社点都要在白/红底上可辨（既有「双标记」问题本轮不收敛，只保证两个都看得见）：
   世界地图的红点 r=10 在上面（#E24A3F 对红底 1.66:1）→ 白描边 2px，边缘 6.61:1；
   日本本地图的蓝点 r=7 在县层内（#2F6BFF 对红底 1.47:1）→ 白描边 1.6px。
   蓝点原先靠内联 presentation 属性，CSS 改不动它；现在 SVG 里给了 .jp-map__hq-dot 类名，
   CSS 的 stroke 会覆盖 presentation 属性（属性优先级低于任何 CSS）。 */
.maps-stack__jp:hover ~ .maps-stack__hq .maps-stack__hq-dot {
  stroke: #fff; stroke-width: 2px;
}
.maps-stack__jp:hover .jp-map__hq-dot {
  stroke: #fff; stroke-width: 1.6px;
}
@media (prefers-reduced-motion: reduce) {
  .worldmap__flag--jp { transition: none; }
}

/* ---------------- 地图放大 + 小国放大镜（W-20261024-87 §3.4） ----------------
   ① 网格 1.6fr:1fr → 2fr:1fr，并用掉右侧那段空隙：地图容器约 789 → 860px（+9%），
      scale 0.7867 → 0.857（1440）。只影响 ≥1024，移动端不变。
   ② 小国（英 22×26 / 西 32×26 / 意 30×33 / 香港 18px 点）形状太小，国旗填进去会糊成色点 ⇒
      改由既有的 .map-tip（跟随指针、边缘自动收进容器）承载：60×40 国旗 + 国名。 */
@media (min-width: 1024px) {
  .partners .partners__grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    column-gap: clamp(16px, 2vw, 28px);
  }
}
.map-tip {
  display: grid; justify-items: center; gap: 6px;
  padding: 8px 8px 6px;
  /* 卡片必须在深色海面上「浮起来」：原 rgba(14,17,20,.96) 与地图底 #0E1114 完全同色，
     只剩一圈 14% 白边 ⇒ 视觉上等于不存在（本卡 P1）。三条一起上：底色提亮 16 阶 + 边框 28% + 投影。 */
  /* 数值口径（Reviewer 复批）：底色合成后 vs 地图底 rgb(23,27,31) ≥1.35:1、边框 ≥3.5:1。
     rgba(30,36,42) 只有 1.11:1（提 8 阶在数值上等于没动）⇒ 提亮到 (48,56,65) = 1.44:1；
     边框 .28 = 3.27:1 不够 ⇒ .36 = 4.11:1。投影仍是主要分离手段（深色海面上唯一能给出「浮起」的手段）。 */
  background: rgba(48, 56, 65, .97);
  border: 1px solid rgba(255, 255, 255, .36);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .55);
}
.map-tip__flag { display: block; line-height: 0; }
.map-tip__flag[hidden] { display: none; }
.map-tip__flag svg { display: block; width: 60px; height: 40px; }
.map-tip__name { font-size: 12px; color: #fff; letter-spacing: .04em; }
.map-tip__registry { display: none; }
/* 110m 数据里香港在中国多边形内 ⇒ 香港点从「压在深底」变成「压在中国填充面上」：
   --fg2 对陆域合成色 2.54:1（原对深底 5.95:1），加 1.2px 白环后边缘 7.39:1。 */
.partners .worldmap__country--dot > circle:first-of-type {
  stroke: #fff; stroke-width: 1.2;
}
@media (prefers-reduced-motion: reduce) {
  .worldmap__tip, .map-tip { transition: none; }
}

/* 卡 88：卡片只服务指针设备（≥1024 双栏时地图才够大）；更窄档地图是单栏全宽，
   触屏一边滑动一边弹卡会挡地图，且下方 16 国列表已给出国名 ⇒ 直接不显示。 */
@media (max-width: 1023px) {
  .map-tip { display: none; }
}

/* 卡 91：香港是点型，旗面（圆形裁切 r=7）盖在圆点上。但 `.worldmap__country--dot:hover circle`
   会把圆点与 r=16 的光晕都染成 accent 蓝 —— 光晕在 DOM 里排在旗面之前会整块盖住旗。
   ⇒ 有旗的香港让圆点/光晕保持透明，只留 1.2px 白描边做外环。
   必须按态枚举 :is(:hover, :focus-visible, .is-active)：只写 :hover 时，鼠标划过右侧列表里的
   「中国香港」一行（main.js 的 item mouseenter → activate → .is-active）地图上就会变成蓝盘
   —— 这不是键盘路径，普通浏览就能触发（卡 91 被打回的那条）。 */
.partners .worldmap__country--dot[data-flag-fill="1"]:is(:hover, :focus-visible, .is-active) > circle:first-of-type,
.partners .worldmap__country--dot[data-flag-fill="1"]:is(:hover, :focus-visible, .is-active) > .worldmap__halo {
  fill: transparent;
}

/* partners__grid 基础（主站写在 pages.css，复制时遗漏，此处补回） */
@media(min-width:1024px){
  .partners .partners__grid{display:grid;align-items:start}
}


/* ===== partners 列表（.market-item 等，来自主站 pages.css）===== */
/* 香港：110m 数据无多边形，用点 + 透明热区 */
.worldmap__country--dot circle { fill: var(--fg2); transition: fill var(--dur) var(--ease); }
.worldmap__country--dot .worldmap__halo { fill: transparent; }
.worldmap__country--dot:hover circle,
.worldmap__country--dot:focus-visible circle,
.worldmap__country--dot.is-active circle { fill: var(--accent); }

.map-tip {
  position: absolute;
  z-index: 2;
  pointer-events: none;
  padding: 6px 10px;
  border: var(1px) solid var(--line);
  background: var(--bg);
  color: #fff;
  font-size: 12px;
  letter-spacing: .04em;
  white-space: nowrap;
  transform: translate(12px, 12px);
}
.map-tip[hidden] { display: none; }

.partners__side-title {
  font-family: var(--ff-latin);
  font-size: var(--fs-caption);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--fg2);
  padding-bottom: 12px;
  border-bottom: var(1px) solid var(--line);
}
.market-list { list-style: none; margin: 0; padding: 0; }
.market-list li { border-bottom: var(1px) solid var(--line); }
.market-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 16px;
  padding: 12px 2px;
  color: var(--fg2);
  transition: color var(--dur) var(--ease), padding-inline-start var(--dur) var(--ease);
}
.market-item__name { font-size: 15px; color: #fff; letter-spacing: .02em; }
.market-item__tag { grid-column: 1 / -1; font-size: 12px; line-height: 1.65; color: var(--fg2); }
.market-item__arrow {
  width: 22px; height: var(1px); background: var(--fg2);
  align-self: center; position: relative;
}
.market-item__arrow::after {
  content: ""; position: absolute; right: 0; top: -3px;
  width: 7px; height: 7px; border-top: var(1px) solid currentColor;
  border-inline-end: var(1px) solid currentColor; transform: rotate(45deg);
}
.market-item:hover, .market-item:focus-visible, .market-item.is-active {
  color: #fff;
  padding-inline-start: 8px;
}
.market-item.is-active .market-item__name { color: var(--accent); }
.partners__hint { margin-top: 14px; font-size: var(--fs-caption); color: var(--fg2); }

@media (max-width: 768px) {
  .partners__map { padding: 6px; }
  .worldmap { max-height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
  .worldmap__country path,
  .worldmap__country--dot circle,
  .market-item { transition: none; }
}

/* 日本所在地红点（主站 --c-hq: #E24A3F，被变量映射误吞，此处还原） */
:root{--hq:#E24A3F}
.maps-stack__hq-dot{fill:#E24A3F}
.maps-stack__hq-halo{fill:#E24A3F}

/* ===== 页头 logo：图标 + 文字 + 分隔线 + 地点（对齐 oiiolife wordmark） ===== */
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg)}
.logo__mark{display:inline-flex;align-items:center;color:var(--accent);
            transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.logo:hover .logo__mark{color:var(--accent)}
.logo__arrow{transition:transform .3s cubic-bezier(.2,.7,.3,1);transform-origin:28px 12px}
.logo:hover .logo__arrow{transform:translateX(2.5px)}
.logo__text{font:600 15px/1 var(--sans);letter-spacing:.34em}
.logo__div{width:1px;height:13px;background:var(--line2)}
.logo__locale{font:400 9px/1 var(--mono);letter-spacing:.22em;color:var(--fg3)}

/* ===== 页脚：品牌 + 挖掘机 + 版权（对齐 oiiolife site-footer） ===== */
.ft__brand{display:inline-flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none}
.ft__brand .logo__mark{color:var(--fg2)}
.ft__brand:hover .logo__mark{color:var(--accent)}
.ft__desc{margin:14px 0 0;max-width:24rem;line-height:1.9;font-size:13px;color:var(--fg2)}
.ft__mid{margin-top:56px;padding-top:40px;border-top:1px solid var(--line);
         display:flex;flex-direction:column;align-items:center;gap:20px}
.ft__excavator{color:var(--fg3);transition:color .3s}
.ft__excavator:hover{color:var(--accent)}
.ft__meta{display:flex;gap:16px;margin:0;font:400 11px/1.7 var(--mono);
          letter-spacing:.08em;color:var(--fg3)}
.ft__meta span:first-child{color:var(--fg2)}

/* 挖掘机尾气（沿用主站小汽车的 puff 动画类名） */
.ft__excavator .exhaust .puff{fill:currentColor;opacity:0;transform-origin:4.4px 10.4px}
.ft__excavator .puff--1{animation:puffUp 2.6s ease-out infinite}
.ft__excavator .puff--2{animation:puffUp 2.6s ease-out .55s infinite}
.ft__excavator .puff--3{animation:puffUp 2.6s ease-out 1.1s infinite}
@keyframes puffUp{
  0%{opacity:.34;transform:translate(0,0) scale(.6)}
  70%{opacity:.06;transform:translate(-5px,-4px) scale(1.5)}
  100%{opacity:0;transform:translate(-7px,-5px) scale(1.8)}
}
@media(prefers-reduced-motion:reduce){
  .ft__excavator .puff{animation:none;opacity:0}
  .logo:hover .logo__mark{transform:none}
}

@media(max-width:640px){
  .logo__locale{display:none}
  .logo__div{display:none}
  .logo__text{letter-spacing:.22em}
  .ft__mid{margin-top:40px;padding-top:28px}
}

/* 页脚挖掘机：颜色提亮一档（原 --fg3 在深色底上几乎看不见） */
.ft__excavator{color:var(--fg2)}

/* 车辆卡片图（AI 生成，接入后替换原斜纹占位 .vc__ph） */
.vc__img{width:100%;height:100%;object-fit:cover;display:block;
         transition:transform 400ms cubic-bezier(.2,.7,.3,1)}
.vc:hover .vc__img{transform:scale(1.03)}

/* 详情页大图（替换原 vd__ph 占位；3:2 与源图比例一致，不裁切） */
.vd__media{position:relative;overflow:hidden;background:var(--bg3);aspect-ratio:3/2}
.vd__img{width:100%;height:100%;object-fit:cover;display:block}

/* ============================================================
   2026-10-25 整体质感提升（站长：略显丑陋，不够整洁高级优雅有品位）
   诊断 → 8 项改造：
   ① 铜色收窄（原 6 处用色 → 2 处）：eyebrow/tagline/claim 边框改中性
   ② 首屏标题第二行不再整行橙，改用字重与色阶区分
   ③ 主按钮实心橙 → 描边（hover 才填充），面积大是「廉价感」第一来源
   ④ 内容宽度限制放宽（56rem/46rem/52rem → 占满栅格）
   ⑤ 首屏光晕去掉，纯墨底更干净
   ⑥ 行高与内距收紧（松 ≠ 高级）
   ⑦ 「——」长横线去掉
   ⑧ 去掉暴露假数据的「サンプルです」注释
   ============================================================ */


/* ⑥ 表格行高收紧（原 70px 一行只放一行字） */
.co th,.co td{padding:20px 24px!important}
.co tr{height:auto!important}
.co{font-size:14px!important}
.co th{color:var(--fg3);font-weight:400;width:22%}
.co td{color:var(--fg)}

/* 公司概要 / 新闻 / 车辆：去掉右侧空档，表单区改为双栏对齐 */
.co-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);gap:64px;align-items:start}
@media(max-width:1023px){.co-wrap{grid-template-columns:1fr;gap:32px}}

/* 新闻列表：日期 + 分类 + 标题三段对齐，占满 */
.news li a{gap:0}
@media(min-width:900px){
  .news li a{display:grid;grid-template-columns:132px max-content minmax(0,1fr);align-items:baseline;column-gap:28px}
}


/* ===== 字体（2026-10-25 第 3 轮：换掉系统字体） ===== */
:root{
  --sans:"Noto Sans JP","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Hiragino Sans","Helvetica Neue",sans-serif;
  --serif:"Instrument Serif","Noto Serif JP","Noto Serif SC",Georgia,"Times New Roman",serif;
}
body{font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* 标题用衬线：日文的明朝体在大字号下更「有品位」 */
.hero h1,.sec__h,.page-hero h1,.statement h2,.biz h2,.vd__h,.vc__gh{
  font-family:var(--serif);font-weight:300;letter-spacing:.01em
}
/* 数字与编号保持等宽 */
.hero__cap,.eyebrow,.vc__num,.vc__count,.vc__make,.ft__meta,.nav a i{font-family:var(--mono)}

/* ===== Business 三大块配图（2026-10-25 第 3 轮） ===== */
.biz__fig{margin:0 0 20px;overflow:hidden;background:var(--bg3);aspect-ratio:3/2}
.biz__img{width:100%;height:100%;object-fit:cover;display:block;
          filter:saturate(.9) contrast(1.02);transition:transform 500ms cubic-bezier(.2,.7,.3,1)}
.biz__item:hover .biz__img{transform:scale(1.03)}
.biz__num{display:block;margin-bottom:8px}

/* ===== 滚动淡入（对齐 oiiolife 的进入节奏） ===== */
@media(prefers-reduced-motion:no-preference){
  /* 淡入默认可见：JS 未能触发时必须仍然显示内容（宁可没有动效，不能白屏） */
  [data-rev]{opacity:1;transform:none}
  [data-rev][data-rev-delay="1"]{transition-delay:.08s}
  [data-rev][data-rev-delay="2"]{transition-delay:.16s}
  [data-rev][data-rev-delay="3"]{transition-delay:.24s}

  /* 卡片 hover：边框提亮 + 轻微上浮 */
  .vc{transition:background .25s ease,transform .35s cubic-bezier(.2,.7,.3,1)}
  .vc:hover{transform:translateY(-2px)}
  .biz__item{transition:transform .4s cubic-bezier(.2,.7,.3,1)}
  .biz__item:hover{transform:translateY(-3px)}

  /* 链接下划线动效 */
  .nav a,.ft__links a,.market-item{position:relative}
  .ft__links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;
    background:var(--accent);transition:width .3s cubic-bezier(.2,.7,.3,1)}
  .ft__links a:hover::after{width:100%}
}

/* 按钮箭头（对齐 oiiolife 的 btn__arrow） */
.btn{display:inline-flex;align-items:center;gap:10px}
.btn__arrow{width:14px;height:1px;background:currentColor;position:relative;flex:none;
            transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.btn__arrow::after{content:"";position:absolute;right:0;top:-3px;width:6px;height:6px;
  border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover .btn__arrow{transform:translateX(4px)}

/* 车辆标签（对齐 oiiolife 的 stock-tags） */
.vc__tags,.vd__tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.vc__tags span,.vd__tags span{padding:3px 8px;border:1px solid var(--line2);
  font:400 9.5px/1.6 var(--mono);letter-spacing:.1em;color:var(--fg2)}

/* ===== 页脚联系信息块 ===== */
.ft__contact{margin-top:22px}
.ft__ct-h{margin:0 0 8px;font:400 10px/1 var(--mono);letter-spacing:.18em;color:var(--fg3);text-transform:uppercase}
.ft__ct-mail{display:inline-block;font-size:15px;color:var(--fg);text-decoration:none;letter-spacing:.02em}
.ft__ct-mail:hover{color:var(--accent)}
.ft__ct-line{margin:6px 0 0;font:400 11px/1.7 var(--mono);letter-spacing:.06em;color:var(--fg3)}
.ft__links{gap:22px}

/* ===== 隐私政策页 ===== */
.pp{max-width:52rem}
.pp__item{padding:26px 0;border-top:1px solid var(--line)}
.pp__item:first-child{border-top:0;padding-top:0}
.pp__h{margin:0 0 10px;font:400 15px/1.5 var(--sans);color:var(--fg);letter-spacing:.01em}
.pp__p{margin:0;font-size:13.5px;line-height:2;color:var(--fg2)}
.pp__updated{margin:34px 0 0;padding-top:22px;border-top:1px solid var(--line);
  font:400 11px/1 var(--mono);letter-spacing:.08em;color:var(--fg3)}

/* 详情页用途说明 */
.vd__use{margin:0 0 26px;font-size:13.5px;line-height:2;color:var(--fg2);max-width:38rem}

/* ===== 表单页重构（2026-10-25：三列混乱 → 左表单右侧栏） ===== */
.ct{display:grid!important;grid-template-columns:minmax(0,1fr) 320px;
    gap:clamp(40px,5vw,88px);align-items:start}
@media(max-width:1023px){.ct{grid-template-columns:1fr;gap:48px}}

.ct__form{display:block;min-width:0}
.ct__row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:22px}
@media(max-width:640px){.ct__row{grid-template-columns:1fr;gap:18px}}

.ct__f{display:block;margin:0}
.ct__f--full{margin-bottom:22px}
.ct__f > span{display:block;margin-bottom:8px;
  font:400 10.5px/1 var(--mono);letter-spacing:.14em;color:var(--fg3);text-transform:uppercase}
.ct__f > span i{color:var(--accent);font-style:normal}

/* 输入框：给可见的底与边框，不再只有一条淡下划线 */
.ct__f input,.ct__f textarea{
  width:100%;box-sizing:border-box;
  background:rgba(255,255,255,.028);
  border:1px solid var(--line2);border-radius:0;
  padding:14px 16px;color:var(--fg);
  font:400 14px/1.6 var(--sans);
  transition:border-color .2s ease,background .2s ease;
  appearance:none;
}
.ct__f input{height:50px}
.ct__f textarea{min-height:132px;resize:vertical;line-height:1.9}
.ct__f input:hover,.ct__f textarea:hover{border-color:rgba(255,255,255,.28)}
.ct__f input:focus,.ct__f textarea:focus{
  outline:none;border-color:var(--accent);background:rgba(184,115,51,.045)}
.ct__f input::placeholder,.ct__f textarea::placeholder{color:var(--fg3)}

.ct__hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important}

/* 同意复选框 */
.ct__check{display:flex;align-items:flex-start;gap:12px;margin:6px 0 26px;
  font-size:13px;line-height:1.7;color:var(--fg2);cursor:pointer}
.ct__check input{width:18px;height:18px;flex:none;margin:1px 0 0;
  appearance:none;border:1px solid var(--line2);background:transparent;
  cursor:pointer;position:relative;transition:border-color .2s,background .2s}
.ct__check input:hover{border-color:rgba(255,255,255,.34)}
.ct__check input:checked{border-color:var(--accent);background:var(--accent)}
.ct__check input:checked::after{
  content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(42deg)}

.ct__submit{min-width:210px;justify-content:center}
.ct__msg{margin:16px 0 0;font-size:13px;line-height:1.7;color:var(--fg2);min-height:1.2em}
.ct__msg[data-ok="1"]{color:#8FBF9F}
.ct__msg[data-err="1"]{color:#E08C7C}
.ct__note{margin:14px 0 0;font-size:11.5px;line-height:1.8;color:var(--fg3)}

/* 右侧联系信息 */
.ct__side{position:sticky;top:96px;padding-left:32px;border-left:1px solid var(--line)}
@media(max-width:1023px){.ct__side{position:static;padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:32px}}
.ct__side-h{margin:0 0 18px;font:400 10.5px/1 var(--mono);letter-spacing:.18em;
  color:var(--fg3);text-transform:uppercase}
.ct__contact{display:block;margin:0 0 14px;font-size:17px;color:var(--fg);
  text-decoration:none;letter-spacing:.02em}
.ct__contact:hover{color:var(--accent)}

/* 公司概要右栏 */
.co__side{padding-left:32px;border-left:1px solid var(--line)}
@media(max-width:1023px){.co__side{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:28px}}
.co__side-h{margin:0 0 20px;font:400 10.5px/1 var(--mono);letter-spacing:.18em;
  color:var(--fg3);text-transform:uppercase}
.co__side-item{padding:14px 0;border-top:1px solid var(--line)}
.co__side-item:first-of-type{border-top:0;padding-top:0}
.co__side-item dt{margin:0 0 4px;font:400 11px/1 var(--mono);letter-spacing:.12em;
  color:var(--accent);text-transform:uppercase}
.co__side-item dd{margin:0;font-size:13px;line-height:1.8;color:var(--fg2)}

/* ===== 详情页图集（主图 + 3 个角度缩略图） ===== */
.vd__thumbs{display:flex;gap:10px;margin-top:12px}
.vd__thumb{flex:1;min-width:0;padding:0;border:1px solid transparent;background:var(--bg3);
  cursor:pointer;overflow:hidden;transition:border-color .2s ease,opacity .2s ease;opacity:.62}
.vd__thumb img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover}
.vd__thumb:hover{opacity:.9;border-color:var(--line2)}
.vd__thumb[aria-current="true"]{opacity:1;border-color:var(--accent)}
.vd__thumb:focus-visible{outline:1px solid var(--accent);outline-offset:2px}
@media(max-width:640px){.vd__thumbs{gap:8px}}

/* 首页「架装の精度」段：文字 + 图两栏 */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);
  gap:clamp(36px,4.5vw,72px);align-items:center}
@media(max-width:1023px){.about{grid-template-columns:1fr;gap:32px}}
.about__fig{margin:0;overflow:hidden;background:var(--bg3)}
.about__fig img{width:100%;height:auto;display:block;aspect-ratio:3/2;object-fit:cover;
  filter:saturate(.9) contrast(1.02)}
.about__fig figcaption{margin-top:10px;font:400 10px/1.6 var(--mono);letter-spacing:.1em;color:var(--fg3)}

/* ===== 页脚挖掘机：单套联动动画（boom → arm → bucket 三层嵌套，铰点重合所以不分离） ===== */
.ft__excavator svg{overflow:visible;width:clamp(86px,8vw,112px);height:auto}
@media(max-width:767px){.ft__excavator svg{width:88px}}
.ft__excavator{position:relative;padding:10px 14px;margin:-10px -14px;display:inline-block;line-height:0;
  transition:color .3s ease,transform .35s cubic-bezier(.2,.7,.3,1)}
.ft__excavator:hover,.ft__excavator:focus-visible{color:var(--accent);transform:translateY(-2px)}
.ft__excavator:focus-visible{outline:1px solid var(--accent);outline-offset:6px}
.ft__excavator .pin{fill:#131519;stroke:currentColor;stroke-width:1}

@media(prefers-reduced-motion:no-preference){
  .ft__excavator .boom{transform-box:view-box;transform-origin:17.2px 13.5px}
  .ft__excavator .arm{transform-box:view-box;transform-origin:36.4px 10.4px}
  .ft__excavator .bucket{transform-box:view-box;transform-origin:42.2px 15.2px}

  .ft__excavator:hover .boom,.ft__excavator:focus-visible .boom,
  .ft__excavator.is-dig .boom{animation:digBoom 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .ft__excavator:hover .arm,.ft__excavator:focus-visible .arm,
  .ft__excavator.is-dig .arm{animation:digArm 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .ft__excavator:hover .bucket,.ft__excavator:focus-visible .bucket,
  .ft__excavator.is-dig .bucket{animation:digBucket 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .ft__excavator:hover .track,.ft__excavator:focus-visible .track,
  .ft__excavator.is-dig .track{transform-origin:15px 21.7px;animation:digTrack 1.4s linear infinite}
  .ft__excavator:hover .puff,.ft__excavator.is-dig .puff{opacity:.5}
  .ft__excavator:hover svg{transform:scale(1.06);transition:transform .3s cubic-bezier(.2,.7,.3,1)}
}
/* 一个挖掘循环：下压探底 → 收斗挖起 → 卸料回位（三段相位错开，铲斗滞后） */
@keyframes digBoom{
  0%,100%{transform:rotate(0deg)}
  16%{transform:rotate(13deg)}
  44%{transform:rotate(-10deg)}
  66%{transform:rotate(5deg)}
  84%{transform:rotate(-2.5deg)}
}
@keyframes digArm{
  0%,100%{transform:rotate(0deg)}
  16%{transform:rotate(-20deg)}
  44%{transform:rotate(32deg)}
  66%{transform:rotate(-7deg)}
}
@keyframes digBucket{
  0%,100%{transform:rotate(0deg)}
  16%{transform:rotate(20deg)}
  44%{transform:rotate(-36deg)}
  66%{transform:rotate(12deg)}
}
@keyframes digTrack{0%{transform:translateX(0)}50%{transform:translateX(.7px)}100%{transform:translateX(0)}}


/* ===== 2.0：製品ラインナップ（六つの製品ライン） ===== */
.pl{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);
    border:1px solid var(--line);margin:0}
.pl__c{background:var(--bg);margin:0;display:flex;flex-direction:column}
.pl__m{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg3)}
.pl__m img{width:100%;height:100%;object-fit:cover;display:block;
           filter:saturate(.94) contrast(1.02);transition:transform .8s var(--ease)}
.pl__c:hover .pl__m img{transform:scale(1.045)}
.pl__b{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.pl__n{font:400 10px/1 var(--mono);letter-spacing:.24em;color:var(--accent)}
.pl__t{margin:12px 0 10px;font:400 clamp(19px,1.6vw,23px)/1.35 var(--serif);letter-spacing:.01em}
.pl__t a{color:var(--fg)}
.pl__d{margin:0 0 20px;font-size:12.5px;line-height:1.9;color:var(--fg2)}
.pl__s{margin:auto 0 0;padding-top:16px;border-top:1px solid var(--line);display:flex;gap:18px;flex-wrap:wrap;
       font:400 10.5px/1.7 var(--mono);letter-spacing:.06em;color:var(--fg3)}
.pl__s b{color:var(--fg);font-weight:500}
@media(max-width:1023px){.pl{grid-template-columns:repeat(2,1fr)}}
@media(max-width:639px){.pl{grid-template-columns:1fr}.pl__b{padding:20px 20px 24px}}

/* ===== 2.0：図版帯（港・工場） ===== */
.photo-band img{width:100%;display:block;aspect-ratio:21/9;object-fit:cover;
                border:1px solid var(--line);filter:saturate(.92) contrast(1.03)}
@media(max-width:639px){.photo-band img{aspect-ratio:4/3}}


/* ===== 2.0：ヘッダー wordmark（logo 子要素） ===== */
.logo{display:inline-flex;align-items:center;gap:14px;font:500 13px/1 var(--sans);
      letter-spacing:.34em;color:var(--fg);text-decoration:none}
.logo__mark{display:inline-flex;color:var(--accent)}
.logo__mark svg{display:block}
.logo__text{letter-spacing:.34em}
.logo__div{width:1px;height:15px;background:var(--line2);display:inline-block}
.logo__locale{font:400 9px/1 var(--mono);letter-spacing:.22em;color:var(--fg3)}
@media(max-width:767px){.logo{gap:10px}.logo__div,.logo__locale{display:none}}

/* ===== 2.0：hero 可読性（二重グラデーション） ===== */
.hero{min-height:min(86vh,800px);display:flex;align-items:flex-end;
      background:#101215;color:#F3F0E9}
.hero__bg img{width:100%;height:100%;object-fit:cover;display:block;
              transform:scaleX(-1);
              filter:saturate(.92) contrast(1.05) brightness(.9)}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(94deg, rgba(8,9,11,.90) 0%, rgba(8,9,11,.62) 40%, rgba(8,9,11,.10) 72%),
    linear-gradient(180deg, rgba(8,9,11,.42) 0%, rgba(8,9,11,.10) 34%, rgba(8,9,11,.86) 100%)}
.hero__in{display:flex;flex-direction:column;align-items:flex-start;gap:0;
          padding-block:clamp(80px,14vh,150px) clamp(32px,5vh,56px)}
.hero h1{font:400 clamp(34px,5vw,70px)/1.14 var(--serif);color:#FBF8F1;letter-spacing:.005em}
.hero h1 em{font-style:italic;color:#E3A886;display:block;margin-top:.04em}
.hero__lead{color:#CFCAC1}
.hero__lead strong{color:#FBF8F1}
.eyebrow{color:#DCA083}
@media(max-width:767px){
  .hero{min-height:min(78vh,640px)}
  .hero h1{font-size:clamp(30px,9vw,44px)}
}

/* ===== 2.0：卡片与详情页图片 ===== */
.vc__img{width:100%;height:100%;object-fit:cover;display:block;
         filter:saturate(.94) contrast(1.02);transition:transform .7s var(--ease)}
.vc:hover .vc__img{transform:scale(1.04)}
.vd__img{width:100%;height:auto;display:block;border:1px solid var(--line);
         filter:saturate(.94) contrast(1.02)}
.vd__media{background:transparent}

/* ===== 2.0：カードグリッドを枠線カードに（空きスロットを露出させない） ===== */
.vc__grid{grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.8vw,26px);
          background:none;border:0}
.vc{border:1px solid var(--line);background:var(--bg)}
.vc__media{aspect-ratio:3/2}
.vc__body{padding:20px 22px 26px}
@media(max-width:1023px){.vc__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.vc__grid{grid-template-columns:1fr}}

/* ===== 2.0：カード状態バッジ（画像上の深底に白字） ===== */
.vc__status{background:rgba(16,18,22,.88);border:1px solid rgba(255,255,255,.22);color:#F7F4ED}
.vc__tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.vc__tags span{font:400 9.5px/1 var(--mono);letter-spacing:.1em;color:var(--fg3);
               border:1px solid var(--line);padding:5px 8px}

/* ===== 2.1：TAG 筛选 + 静态分页 ===== */
.tags{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 clamp(24px,3vw,36px)}
.tagchip{display:inline-flex;align-items:baseline;gap:9px;padding:11px 16px;
  border:1px solid var(--line);font:400 12.5px/1 var(--sans);color:var(--fg2);
  transition:border-color .18s,color .18s,background .18s}
.tagchip b{font-weight:500;letter-spacing:.02em}
.tagchip i{font:400 9.5px/1 var(--mono);letter-spacing:.06em;color:var(--fg3);font-style:normal}
.tagchip:hover{border-color:var(--line2);color:var(--fg)}
.tagchip[aria-current="page"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.tagchip[aria-current="page"] i{color:inherit;opacity:.55}
.stock-count{margin:20px 0 0;font:400 10.5px/1 var(--mono);letter-spacing:.18em;color:var(--fg3)}
.pager{display:flex;gap:6px;justify-content:center;align-items:center;
  margin:clamp(40px,6vw,72px) 0 0;border-top:1px solid var(--line);padding-top:clamp(24px,3vw,36px)}
.pager__item{min-width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);font:400 12px/1 var(--mono);color:var(--fg2);padding:0 12px;
  transition:border-color .18s,color .18s,background .18s}
.pager__item:hover{border-color:var(--line2);color:var(--fg)}
.pager__item--current{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.pager__item--nav{padding:0 18px;letter-spacing:.1em}
.pager__item.is-disabled{opacity:.32;pointer-events:none}
.vc-empty{grid-column:1/-1;padding:64px 0;color:var(--fg3);font-size:14px}
@media(max-width:639px){.tagchip{padding:9px 12px;font-size:11.5px}}

/* 卡 158：/vehicles/ 320 档分页器横向溢出（8 项 × 38 + 7×6 gap ≈ 346 > 视口，首末项被裁 13px）
   且 ≤639 档原 .pager__item 只有 38×38，本就低于 44×44 触控下限。
   修法：触控补到 44×44 + 允许折行（8×44 + 7×6 = 394 > 容器 276/316/331，折行是 44 的必然结果），
   row-gap 10px 让两行拉开层次、不贴下一块；折行后每行按行居中（justify-content 显式写在这里，
   不再依赖基础规则，避免后续改动把它覆盖成左对齐）。 */
@media(max-width:639px){
  .pager{flex-wrap:wrap;row-gap:10px;justify-content:center}
  .pager__item{min-width:44px;height:44px}
  .pager__item--nav{padding:0 12px}
}

/* 卡 162：触控下限按指针类型判定，而不是按视口宽度。
   基础规则 .pager__item 是 42×42 —— 640 及以上多为鼠标环境，保留 42 的观感；
   触屏设备（平板 / 触屏笔记本，pointer:coarse 命中）拿 44×44，符合 44 触控下限的原意。 */
@media (pointer:coarse){
  .pager__item{min-width:44px;min-height:44px}
}

/* ===== 2.1：中国中心の世界地図（export 页） ===== */
.cnmap{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:clamp(24px,3vw,48px);align-items:start}
.cnmap__head{grid-column:1/-1;margin-bottom:clamp(8px,1.6vw,20px)}
.cnmap__h{margin:14px 0 0;font:400 clamp(24px,3vw,40px)/1.3 var(--serif);color:var(--fg)}
.cnmap__lead{margin:14px 0 0;max-width:42rem;font-size:13px;line-height:1.95;color:var(--fg2)}
.cnmap__stage{position:relative;border:1px solid var(--line);background:#15181d;overflow:hidden}
.cnmap__stage .maps-cn{width:100%;height:auto;display:block}
.cnmap__stage .sea{fill:#15181d}
.cnmap__stage .ld{fill:#2a2f36}
.cnmap__stage .mk{fill:#6f4a37;transition:fill .2s}
.cnmap__stage .mk:hover{fill:#a2623f}
.cnmap__stage .cn{fill:#c8835b}
.cnmap__stage .arc{fill:none;stroke:#c8835b;stroke-width:.9;opacity:.5;stroke-dasharray:3 5}
.cnmap__stage .hq__halo{fill:#e2a37e;opacity:.2}
.cnmap__stage .hq__dot{fill:#e2a37e}
.cnmap__stage .hq__core{fill:#15181d}
.cnmap__stage .pt__dot{fill:#9aa1a8;opacity:.75}
.cnmap__hq{position:absolute;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);
  display:inline-flex;align-items:baseline;gap:10px;padding:9px 14px;
  background:rgba(12,14,17,.72);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);
  font:400 11px/1 var(--mono);letter-spacing:.14em;color:#f3f0e9}
.cnmap__hq span{color:#e2a37e}
.cnmap__markets{list-style:none;margin:0;padding:0;display:grid;gap:0;
  border-top:1px solid var(--line)}
.cnmap__markets li{padding:9px 0;border-bottom:1px solid var(--line);
  font:400 11.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--fg2)}
@media(max-width:900px){
  .cnmap{grid-template-columns:1fr}
  .cnmap__markets{grid-template-columns:repeat(2,1fr);column-gap:20px}
}

/* ===== 2.1：地図ブロックの内側余白（深色区の上端で文字が切れないように） ===== */
.cnmap{padding-block:clamp(20px,3vw,36px) clamp(8px,2vw,20px)}
.cnmap__markets{grid-template-columns:repeat(2,1fr);column-gap:22px;max-height:none}
.cnmap{grid-template-columns:minmax(0,1fr) 300px}
@media(max-width:1100px){.cnmap{grid-template-columns:1fr}.cnmap__markets{grid-template-columns:repeat(3,1fr)}}
@media(max-width:639px){.cnmap__markets{grid-template-columns:repeat(2,1fr)}}

/* ===== 2.1：詳細ページは hero 直下の余白を詰める ===== */
.sec:has(.vd){padding-top:clamp(28px,4vw,56px)}
.vd__media{top:88px}

/* ===== 2.2：页脚 SNS 图标（单色 currentColor，hover 铜色） ===== */
.ft__links{display:flex;flex-direction:column;gap:22px;margin-left:auto;align-items:flex-end;font-size:12px}
.ft__links-row{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end}
.social{display:flex;gap:16px;align-items:center}
.social__link{display:inline-flex;color:var(--fg2);transition:color .18s,transform .18s}
.social__link svg{display:block}
.social__link:hover{color:var(--accent);transform:translateY(-1px)}
@media(max-width:767px){
  .ft__links{align-items:flex-start;margin-left:0}
  .ft__links-row{justify-content:flex-start}
  .social{gap:14px}
}

/* ===== 見積依頼（/estimate/）：深墨首屏 + 编号三段 + 下划线表单 ===== */
.qhero{background:#131519;color:#F3F0E9;padding:clamp(52px,7.5vw,100px) 0 0;
  --fg:#F3F0E9;--fg2:#A7A39B;--fg3:#7C7C77;--line:rgba(255,255,255,.13);--line2:rgba(255,255,255,.26);--accent:#CE835B}
.qhero__in{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(32px,5.5vw,84px);align-items:center}
.qhero__h{margin:0 0 24px;font:400 clamp(28px,3.7vw,54px)/1.2 var(--serif);
  letter-spacing:.004em;color:#FBF8F1;text-wrap:balance;max-width:15em}
.qhero__lead{margin:0;max-width:34rem;font-size:clamp(13px,1.15vw,15px);line-height:2.05;color:#C4C0B7}
.qhero__fig{margin:0}
.qhero__fig img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;
  border:1px solid rgba(255,255,255,.14);filter:saturate(.92) contrast(1.04)}
.qhero__fig figcaption{margin-top:12px;font:400 10px/1.6 var(--mono);letter-spacing:.16em;color:#7C7C77}
.qpromises{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(40px,5.5vw,70px);
  border-top:1px solid rgba(255,255,255,.13)}
.qpromise{display:flex;flex-direction:column;gap:9px;padding:26px 26px 30px 0;
  border-right:1px solid rgba(255,255,255,.13)}
.qpromise:last-child{border-right:0}
.qpromise__n{font:400 10px/1 var(--mono);letter-spacing:.2em;color:#CE835B}
.qpromise b{font:400 clamp(15px,1.35vw,19px)/1.4 var(--serif);color:#F3F0E9}
.qpromise span:last-child{font-size:11.5px;line-height:1.8;color:#8E8A82}

.sec--q{padding-top:clamp(40px,5.5vw,80px)}
.qform{max-width:1080px}
.qstep{display:grid;grid-template-columns:minmax(0,196px) minmax(0,1fr);
  gap:clamp(20px,4vw,60px);padding:clamp(30px,4.4vw,54px) 0;border-top:1px solid var(--line)}
.qstep:first-of-type{border-top:0;padding-top:0}
.qstep__n{display:block;margin-bottom:10px;font:400 32px/1 var(--serif);color:var(--accent)}
.qstep__t{margin:0;font:400 clamp(19px,1.85vw,26px)/1.35 var(--serif);letter-spacing:.01em}
.qstep__hint{margin:0 0 22px;font-size:12.5px;line-height:1.95;color:var(--fg2)}

.qlines{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line)}
.qline{display:flex;align-items:center;justify-content:space-between;gap:10px;
  flex:1 1 200px;padding:20px 18px;background:var(--bg);border:0;cursor:pointer;text-align:left;
  font:400 13px/1.45 var(--sans);color:var(--fg2);transition:background .2s,color .2s}
.qline:hover{background:var(--bg2);color:var(--fg)}
.qline[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.qline__x{font:400 12px/1 var(--mono);opacity:.5}

.qgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,34px);margin-bottom:28px}
.qfield{display:flex;flex-direction:column;gap:10px}
.qfield--full{grid-column:1/-1;margin-top:4px}
.qfield>span{font:400 10px/1 var(--mono);letter-spacing:.18em;color:var(--fg3);text-transform:uppercase}
.qfield>span i{color:var(--accent);font-style:normal}
.qfield input,.qfield select,.qfield textarea{
  width:100%;border:0;border-bottom:1px solid var(--line2);background:transparent;border-radius:0;
  padding:12px 2px;font:400 15px/1.5 var(--sans);color:var(--fg);appearance:none;
  transition:border-color .2s}
.qfield select{background-image:none;cursor:pointer}
.qfield textarea{resize:vertical;min-height:98px}
.qfield input:focus,.qfield select:focus,.qfield textarea:focus{outline:none;border-bottom-color:var(--accent)}
.qfield input::placeholder,.qfield textarea::placeholder{color:var(--fg3);opacity:.7}

.qcheck{display:flex;gap:12px;align-items:flex-start;margin:4px 0 30px;font-size:12.5px;color:var(--fg2)}
.qcheck input{margin-top:3px;accent-color:var(--accent)}
.qsubmit{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.qsubmit__btn{padding:19px 40px;letter-spacing:.22em}
.qmsg{margin:0;min-height:1em;font-size:12.5px;color:var(--accent)}
.qnote{margin:20px 0 0;font-size:11.5px;line-height:1.85;color:var(--fg3)}
.qdirect{display:flex;gap:34px;flex-wrap:wrap;align-items:baseline;
  margin-top:clamp(40px,6vw,64px);padding-top:24px;border-top:1px solid var(--line);
  font:400 12px/1.6 var(--mono);letter-spacing:.1em;color:var(--fg3)}
.qdirect a{color:var(--fg)}
.qdirect a:hover{color:var(--accent)}
.qhp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

@media(max-width:1023px){
  .qhero__in{grid-template-columns:1fr}
  .qstep{grid-template-columns:1fr;gap:16px}
  .qline{flex:1 1 46%}
  .qgrid{grid-template-columns:1fr}
}
@media(max-width:639px){
  .qpromises{grid-template-columns:1fr}
  .qpromise{border-right:0;border-bottom:1px solid rgba(255,255,255,.13);padding-right:0}
  .qsubmit__btn{width:100%}
}

/* ===== 輸出対象国の個別ページ（/export/<country>/） ===== */
.mkstats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.sec--mkstat{padding:0;border-bottom:1px solid var(--line)}
.sec--mkstat .stat{padding:26px 24px 28px 0;border-right:1px solid var(--line);margin:0}
.sec--mkstat .stat:last-child{border-right:0}
.mkstat{font:400 clamp(12px,1.05vw,14px)/1.65 var(--sans)!important;
  letter-spacing:.01em!important;color:var(--fg)!important}
.mkgrid{display:grid;grid-template-columns:minmax(0,196px) minmax(0,1fr);
  gap:clamp(18px,4vw,60px);padding:clamp(28px,4vw,46px) 0;border-top:1px solid var(--line)}
.mkgrid:first-child{border-top:0;padding-top:0}
.mk__h{margin:10px 0 0;font:400 clamp(18px,1.8vw,24px)/1.35 var(--serif);letter-spacing:.01em}
.mk__p{margin:0 0 18px;max-width:44rem;font-size:13.5px;line-height:2.05;color:var(--fg2)}
.mk__p:last-child{margin-bottom:0}
.mk__note{margin:0;max-width:44rem;font-size:11.5px;line-height:1.9;color:var(--fg3)}
.demands{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
.demand a{display:grid;grid-template-columns:38px minmax(0,180px) minmax(0,1fr) 22px;gap:18px;
  align-items:baseline;padding:18px 0;border-bottom:1px solid var(--line);
  color:var(--fg2);transition:background .2s,padding .2s}
.demand a:hover{background:var(--accent-soft);padding-inline:10px}
.demand__n{font:400 10px/1 var(--mono);letter-spacing:.14em;color:var(--accent)}
.demand__t{font-size:14px;font-weight:500;color:var(--fg)}
.demand__d{font-size:12.5px;line-height:1.8}
.demand__x{justify-self:end;font:400 12px/1 var(--mono);color:var(--accent)}
.mk__cta{margin-top:clamp(36px,5vw,64px);padding-top:clamp(26px,3.5vw,38px);
  border-top:1px solid var(--line);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.mk__cta-h{margin:0 auto 0 0;font:400 clamp(22px,2.5vw,32px)/1.32 var(--serif)}
.cnmap__markets a{color:inherit;transition:color .15s}
.cnmap__markets a:hover{color:var(--accent)}
@media(max-width:900px){
  .mkstats{grid-template-columns:repeat(2,1fr)}
  .sec--mkstat .stat:nth-child(2n){border-right:0}
  .sec--mkstat .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .mkgrid{grid-template-columns:1fr;gap:10px}
  .demand a{grid-template-columns:30px minmax(0,1fr) 20px}
  .demand__d{grid-column:2/-1}
}
@media(max-width:639px){.mk__cta-h{flex:1 1 100%;margin-bottom:6px}}

/* ===== 2.3：页脚重排（四列栅格 + 底部条，统一栏目小标题，基线整齐） ===== */
.ft{padding:clamp(44px,5vw,72px) 0 30px;border-top:1px solid var(--line);background:var(--bg);color:var(--fg3)}
.ft__top{display:grid;grid-template-columns:minmax(0,1.28fr) repeat(3,minmax(0,.78fr));
  gap:clamp(22px,3vw,44px);align-items:start}
.ft__col{min-width:0}
.ft__h{margin:0 0 20px;font:500 9.5px/1 var(--mono);letter-spacing:.26em;
  color:var(--fg3);text-transform:uppercase}
.ft__brand{display:inline-flex;align-items:center;gap:14px;color:var(--fg)}
.ft__desc{margin:18px 0 0;max-width:21rem;font-size:12px;line-height:1.95;color:var(--fg2)}
.ft__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.ft__list a{font-size:12.5px;line-height:1.4;color:var(--fg2);transition:color .18s}
.ft__list a:hover{color:var(--accent)}
.ft__mail{display:block;font:400 13px/1.6 var(--mono);letter-spacing:.02em;color:var(--fg)}
.ft__mail:hover{color:var(--accent)}
.ft__hours{margin:10px 0 20px;font-size:11.5px;line-height:1.7;color:var(--fg3)}
.ft__quote{display:inline-block;padding:12px 18px;border:1px solid var(--line2);
  font:500 9.5px/1 var(--mono);letter-spacing:.18em;color:var(--fg);
  transition:border-color .2s,color .2s}
.ft__quote:hover{border-color:var(--accent);color:var(--accent)}
.ft .social{display:flex;gap:14px;flex-wrap:wrap}
.ft__legal{display:flex;flex-direction:column;gap:10px;margin-top:22px;font-size:11.5px;line-height:1.4}
.ft__legal a{color:var(--fg3);transition:color .18s}
.ft__legal a:hover{color:var(--fg)}
.ft__bottom{margin-top:clamp(34px,4.5vw,56px);padding-top:22px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ft__meta{margin:0;display:flex;gap:14px;flex-wrap:wrap;align-items:center;
  font:400 9.5px/1 var(--mono);letter-spacing:.16em;color:var(--fg3)}
.ft__meta span{display:inline-block;width:1px;height:10px;background:var(--line2)}
.ft__excavator{margin-left:auto;color:var(--fg2);line-height:0}
@media(max-width:1023px){
  .ft__top{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 28px}
  .ft__col--brand{grid-column:1/-1}
}
@media(max-width:639px){
  .ft__top{grid-template-columns:1fr;gap:28px}
  .ft__bottom{flex-direction:column-reverse;align-items:flex-start;gap:20px}
  .ft__excavator{margin-left:0}
}

/* 页脚挖掘机：静止时不显示排气圆点（之前偶发残留一个淡圆，破坏整洁） */
.ft__excavator .exhaust .puff{opacity:0}
.ft__excavator:hover .exhaust .puff{opacity:.45}

/* 页脚挖掘机：关掉排气烟（puff 的 infinite 动画在静止态也会留一个淡圆，页脚不需要冒烟） */
.ft__excavator .exhaust{display:none!important}

/* ===== 2.4：国旗（国家页 h1 内）+ 地图可点 + 国旗滚动栏 ===== */
.mkflag{display:inline-block;width:clamp(30px,2.8vw,42px);height:auto;
  vertical-align:-.06em;margin-right:16px;
  box-shadow:0 0 0 1px rgba(21,23,27,.16);filter:saturate(.96)}
@media(max-width:639px){.mkflag{width:26px;margin-right:10px}}

.maps-cn a{text-decoration:none}
.maps-cn .mk-link{cursor:pointer}
.maps-cn .mk-link:hover .mk,
.maps-cn .mk-link:focus-visible .mk{fill:#b06a45}
.maps-cn .mk-link:focus-visible{outline:none}
.maps-cn .mk-link:focus-visible .mk{stroke:#f3f0e9;stroke-width:1.2}

.flagstrip{position:relative;margin-top:clamp(28px,3.5vw,44px);overflow:hidden;
  border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13)}
.flagstrip::before,.flagstrip::after{content:"";position:absolute;top:0;bottom:0;width:80px;z-index:2;pointer-events:none}
.flagstrip::before{left:0;background:linear-gradient(90deg,#131519,rgba(19,21,25,0))}
.flagstrip::after{right:0;background:linear-gradient(270deg,#131519,rgba(19,21,25,0))}
.flagstrip__track{display:flex;width:max-content;animation:flagScroll 72s linear infinite}
.flagstrip:hover .flagstrip__track{animation-play-state:paused}
.flagstrip__list{display:flex;list-style:none;margin:0;padding:0}
.flagstrip__list a{display:flex;align-items:center;gap:10px;padding:15px 22px;
  border-right:1px solid rgba(255,255,255,.10);
  font:400 11.5px/1 var(--mono);letter-spacing:.06em;color:#A7A39B;
  white-space:nowrap;transition:color .18s,background .18s}
.flagstrip__list a:hover{color:#F3F0E9;background:rgba(255,255,255,.04)}
.flagstrip img{display:block;width:26px;height:17px;object-fit:cover;
  box-shadow:0 0 0 1px rgba(255,255,255,.14)}
@keyframes flagScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
  .flagstrip__track{animation:none;overflow-x:auto}
}

/* ===== 2.5：協力工場リスト（business） ===== */
.factories{list-style:none;margin:0;padding:0;border-top:1px solid var(--line2)}
.factory a{display:grid;grid-template-columns:40px minmax(0,215px) minmax(0,190px) minmax(0,1fr) 24px;
  gap:clamp(14px,2vw,26px);align-items:baseline;padding:22px 0;
  border-bottom:1px solid var(--line);color:var(--fg2);
  transition:background .2s,padding .2s}
.factory a:hover{background:var(--accent-soft);padding-inline:12px}
.factory__n{font:400 10px/1 var(--mono);letter-spacing:.14em;color:var(--accent)}
.factory__name{font:400 17px/1.35 var(--serif);color:var(--fg);letter-spacing:.01em}
.factory__name em{display:block;margin-top:4px;font:400 11px/1.5 var(--sans);
  font-style:normal;letter-spacing:.06em;color:var(--fg3)}
.factory__tag{font:400 10px/1.7 var(--mono);letter-spacing:.08em;color:var(--accent)}
.factory__d{font-size:12.5px;line-height:1.85}
.factory__x{justify-self:end;font:400 13px/1 var(--mono);color:var(--accent);
  transition:transform .2s}
.factory a:hover .factory__x{transform:translate(2px,-2px)}
@media(max-width:1023px){
  .factory a{grid-template-columns:32px minmax(0,1fr) 20px;row-gap:8px}
  .factory__tag{grid-column:2/3}
  .factory__d{grid-column:2/-1}
  .factory__x{grid-row:1;grid-column:3;align-self:start}
}

/* ===== 国旗栏加固（有人反馈呈竖排：把方向/换行/宽度全部写死，排除继承与压缩） ===== */
.flagstrip{display:block;clear:both;overflow:hidden}
.flagstrip__track{display:flex;flex-direction:row;flex-wrap:nowrap;
  width:max-content;min-width:100%;animation:flagScroll 72s linear infinite}
.flagstrip__list{display:flex;flex-direction:row;flex-wrap:nowrap;flex:0 0 auto;
  width:max-content;min-width:max-content;list-style:none;margin:0;padding:0}
.flagstrip__list li{flex:0 0 auto;margin:0;padding:0}
.flagstrip__list a{display:inline-flex;flex-direction:row;align-items:center;flex:0 0 auto;
  white-space:nowrap}
@media(max-width:639px){
  .flagstrip__list a{padding:12px 16px;font-size:11px}
  .flagstrip img{width:22px;height:15px}
}

/* ===== 2.6：同カテゴリ横スクロール（車輛詳細ページ中段） ===== */
.vstrip-sec{margin:clamp(56px,7vw,96px) 0 0;border-top:1px solid var(--line2)}
.vstrip__head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  padding-top:clamp(28px,3.5vw,44px);padding-bottom:18px}
.vstrip__h{font:400 clamp(19px,1.9vw,24px)/1.35 var(--serif);letter-spacing:.01em;color:var(--fg)}
.vstrip{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.vstrip::before,.vstrip::after{content:"";position:absolute;top:0;bottom:0;width:70px;z-index:2;pointer-events:none}
.vstrip::before{left:0;background:linear-gradient(90deg,var(--bg),rgba(244,241,234,0))}
.vstrip::after{right:0;background:linear-gradient(270deg,var(--bg),rgba(244,241,234,0))}
.vstrip__track{display:flex;flex-direction:row;flex-wrap:nowrap;width:max-content;
  animation:vScroll 68s linear infinite}
.vstrip:hover .vstrip__track{animation-play-state:paused}
.vstrip__list{display:flex;flex-direction:row;flex-wrap:nowrap;flex:0 0 auto;
  width:max-content;list-style:none;margin:0;padding:0}
.vstrip__list li{flex:0 0 auto;border-right:1px solid var(--line)}
.vstrip__card{display:block;width:clamp(208px,19vw,252px);padding:14px 16px 18px;color:var(--fg)}
.vstrip__img{display:block;aspect-ratio:3/2;overflow:hidden;background:#E9E6DE}
.vstrip__img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.2,.6,.2,1);filter:saturate(.96)}
.vstrip__card:hover .vstrip__img img{transform:scale(1.05)}
.vstrip__model{display:block;margin-top:13px;font:400 11.5px/1.5 var(--mono);letter-spacing:.03em;
  color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vstrip__brand{display:block;margin-top:5px;font:400 10px/1.5 var(--mono);letter-spacing:.07em;color:var(--fg3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes vScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.vstrip__track{animation:none;overflow-x:auto}}

/* 报价页：币种说明小字 */
.qfield__note{margin:8px 0 0;font:400 10.5px/1.6 var(--mono);letter-spacing:.05em;color:var(--fg3)}

/* 详情页中段：同类车型滚动栏移到规格与供给条件之间（页面中部），上下留白对齐 */
.vstrip-sec{margin:clamp(44px,5.5vw,80px) 0}
.sec--vdlow{padding-top:0}
.sec--vdlow .vd{margin-top:clamp(8px,1.2vw,16px)}

/* 详情页中段标题：改为与全站区块一致的左对齐堆叠（原来索引左、标题右，视觉分裂） */
.vstrip__head{display:block}
.vstrip__h{margin:12px 0 0}

/* ===== 页头 / 页脚 wordmark 上的挖掘机（与页脚右下同一套 dig* 动画） ===== */
.logo__mark .exc-drw{overflow:visible;width:34px;height:auto;stroke-width:1.7}
.ft__brand .exc-drw{width:36px;stroke-width:1.7}
.logo__mark{overflow:visible}
.logo:hover .logo__mark .exc-drw,
.logo:focus-visible .logo__mark .exc-drw,
.ft__brand:hover .logo__mark .exc-drw,
.ft__brand:focus-visible .logo__mark .exc-drw{color:var(--accent)}

@media(prefers-reduced-motion:no-preference){
  .logo__mark .boom,.ft__brand .boom{transform-box:view-box;transform-origin:17.2px 13.5px}
  .logo__mark .arm,.ft__brand .arm{transform-box:view-box;transform-origin:36.4px 10.4px}
  .logo__mark .bucket,.ft__brand .bucket{transform-box:view-box;transform-origin:42.2px 15.2px}

  .logo:hover .logo__mark .boom,.logo:focus-visible .logo__mark .boom,
  .ft__brand:hover .logo__mark .boom,.ft__brand:focus-visible .logo__mark .boom{animation:digBoom 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .logo:hover .logo__mark .arm,.logo:focus-visible .logo__mark .arm,
  .ft__brand:hover .logo__mark .arm,.ft__brand:focus-visible .logo__mark .arm{animation:digArm 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .logo:hover .logo__mark .bucket,.logo:focus-visible .logo__mark .bucket,
  .ft__brand:hover .logo__mark .bucket,.ft__brand:focus-visible .logo__mark .bucket{animation:digBucket 3.6s cubic-bezier(.45,0,.55,1) infinite}
  .logo:hover .logo__mark .track,.ft__brand:hover .logo__mark .track{transform-origin:15px 21.7px;animation:digTrack 1.4s linear infinite}
}

/* ===== 六类产品线性图标（首页产品线 + 车辆页 TAG） ===== */
.pl__ico{display:inline-block;vertical-align:-6px;margin-right:12px;color:var(--accent)}
.pl__ico .pico{width:30px;height:auto;display:block}
.pl__n{display:flex;align-items:center}
.pl__n .pl__ico{margin-right:10px}
.tagchip{display:inline-flex;align-items:center;gap:8px}
.tagchip .pico{width:26px;height:auto;color:var(--accent);flex:0 0 auto}
.tagchip[aria-current="true"] .pico,.tagchip:hover .pico{color:currentColor}
@media(max-width:639px){
  .pl__ico .pico{width:24px}
  .tagchip .pico{width:20px}
}

/* 輸出対象 标题右侧的铲车（hover 触发同一套挖掘动画） */
.pg-h1--exc{display:flex;align-items:center;gap:clamp(14px,2vw,26px);flex-wrap:wrap}
.pg-h1__exc{display:inline-block;color:var(--accent);line-height:0;transition:color .3s ease}
.pg-h1__exc .exc-drw{width:clamp(74px,7vw,104px);height:auto;overflow:visible;stroke-width:1.4}
.pg-h1__exc:hover .boom,.pg-h1__exc:focus-visible .boom{animation:digBoom 3.6s cubic-bezier(.45,0,.55,1) infinite}
.pg-h1__exc:hover .arm,.pg-h1__exc:focus-visible .arm{animation:digArm 3.6s cubic-bezier(.45,0,.55,1) infinite}
.pg-h1__exc:hover .bucket,.pg-h1__exc:focus-visible .bucket{animation:digBucket 3.6s cubic-bezier(.45,0,.55,1) infinite}
.pg-h1__exc:hover .track{transform-origin:15px 21.7px;animation:digTrack 1.4s linear infinite}
@media(prefers-reduced-motion:no-preference){
  .pg-h1__exc .boom{transform-box:view-box;transform-origin:17.2px 13.5px}
  .pg-h1__exc .arm{transform-box:view-box;transform-origin:36.4px 10.4px}
  .pg-h1__exc .bucket{transform-box:view-box;transform-origin:42.2px 15.2px}
}
@media(max-width:639px){.pg-h1__exc .exc-drw{width:64px}}

/* 产品线编号行：编号 + 图标同一行（inline，避免 flex 换行） */
.pl__n{display:inline-block;vertical-align:middle}
.pl__ico{display:inline-block;vertical-align:middle;margin:0 0 0 9px;line-height:0}
.pl__ico .pico{width:24px;height:auto;display:block}
@media(max-width:639px){.pl__ico .pico{width:20px}}

/* 产品线「编号 + 图标」作为同一行（.pl__b 是 flex column，需要包一层并禁止 stretch） */
.pl__meta{display:inline-flex;align-items:center;gap:9px;align-self:flex-start}
.pl__meta .pl__n{display:inline-block}
.pl__meta .pl__ico{margin:0;align-self:center}
.pl__meta .pl__ico .pico{width:24px;height:auto;display:block}
@media(max-width:639px){.pl__meta .pl__ico .pico{width:20px}}

/* 产品线图标：改为带细框的小徽章，放大到 34px，六类视觉统一 */
.pl__meta{display:inline-flex;align-items:center;gap:12px;align-self:flex-start}
.pl__meta .pl__ico{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line2);border-radius:1px;background:var(--bg);
  transition:border-color .25s ease,color .25s ease}
.pl__meta .pl__ico .pico{width:26px;height:auto;display:block}
.pl__meta .pl__n{letter-spacing:.22em}
.pl__c:hover .pl__meta .pl__ico{border-color:var(--accent)}
@media(max-width:639px){
  .pl__meta .pl__ico{width:32px;height:32px}
  .pl__meta .pl__ico .pico{width:23px}
}
.tagchip .pico{width:28px;height:auto}

/* ===== 移动端导航点击加固 =====
   1) iOS Safari < 16 不支持 overflow-x:clip，会按 hidden 处理，绝对定位的下拉菜单被裁掉 →
      看起来「点菜单没反应」。这里显式放开 header 溢出，横向滚动改由 body 兜底。
   2) touch-action / tap-highlight 消除 iOS 的 300ms 延迟与灰色高亮。 */
.hd{position:relative;overflow:visible}
body{overflow-x:hidden}
.nav-toggle{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.nav[data-open="true"]{z-index:90}
@media(max-width:1279px){
  .hd{overflow:visible}
  .nav[data-open="true"]{top:100%}
}

/* 移动端 MENU 按钮：加大到触控友好尺寸（44px 高） */
@media(max-width:1279px){
  .nav-toggle{padding:0 16px;height:44px;min-width:76px;justify-content:center;font-size:11px}
}

/* 窄屏 header 紧凑化（卡 157）
   2f8a344 把 MENU 按钮设为 min-width:76px / padding:0 16px 后，header 单行内容固定 381px，
   320/360/375 档分别超出视口 61/21/6px，.hd__cta 右缘越界被 body{overflow-x:hidden} 裁掉
   （「見積依頼」在 320 档几乎整只不可见）。此处收紧内边距/间距/margin，MENU 按钮改为
   内容自适应宽度（触控高度保持 44px），并让按钮前的 auto margin 把右侧三件贴右对齐。
   断点取 480 而非 400：英文 CTA（Request a quote）单行内容 436px，421–435 档仍会溢出。 */
@media(max-width:480px){
  .hd__in{padding-inline:12px;gap:6px}
  .logo{gap:6px}
  .nav-toggle{margin-left:auto;min-width:0;padding:0 9px;height:44px;white-space:nowrap}
  .langdd{margin-left:0}
  .langdd__btn{padding:10px 8px}
  .hd__cta{margin-left:0;padding:0 8px}
}

/* 极窄屏（≤360px）再收一档：英文/繁中 CTA 文案较宽（Request a quote 113px），
   320 档在上一档规则下 MENU 按钮会被压到 26px、文字溢出按钮框。 */
@media(max-width:360px){
  .hd__in{padding-inline:10px;gap:5px}
  .logo{gap:5px}
  .logo__text{font-size:13px;letter-spacing:.24em}
  .nav-toggle{padding:0 8px;min-width:44px}   /* 触控下限：zh-hans「菜单」自然宽 43px，补齐到 44×44 */
  .langdd__btn{padding:10px 6px}
  .hd__cta{padding:0 6px;font-size:8.5px;letter-spacing:.04em}
}

/* ===== 页脚重排 2.0：SNS 移到下方独立一行，铲车底栏居中 ===== */
.ft__social{display:flex;justify-content:center;align-items:center;gap:clamp(16px,2.2vw,26px);
  padding:clamp(24px,3vw,34px) 0;border-top:1px solid rgba(255,255,255,.10)}
.ft__social .social__link{width:22px;height:22px}
.ft__bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:clamp(12px,2vw,24px);border-top:1px solid rgba(255,255,255,.10);padding-top:18px;margin-top:0}
.ft__meta{justify-self:start}
.ft__meta--right{justify-self:end;text-align:right;opacity:.7}
.ft__excavator{justify-self:center}
.ft__list--legal{gap:10px}
@media(max-width:767px){
  .ft__bottom{grid-template-columns:1fr;justify-items:center;gap:14px;text-align:center}
  .ft__meta,.ft__meta--right{justify-self:center;text-align:center}
  .ft__meta--right{display:none}
  .ft__social{gap:18px}
}

/* 页脚底栏：© 左 / 铲车 中 / SNS 右（同一行） */
.ft__bottom{grid-template-columns:1fr auto 1fr;align-items:center}
.ft__social{justify-self:end;display:flex;align-items:center;gap:clamp(12px,1.4vw,18px);
  padding:0;border:0;margin:0}
.ft__social .social__link{width:20px;height:20px}
@media(max-width:767px){
  .ft__bottom{grid-template-columns:1fr;justify-items:center;gap:16px}
  .ft__social{justify-self:center}
}

/* 首页统计四块：左右内边距对称，数字与单位基线统一（原来内容右贴分隔线、左贴边界，视觉比例不均） */
.stats__in{grid-template-columns:repeat(4,1fr)}
.stat{padding:clamp(30px,3.4vw,46px) clamp(16px,2.2vw,34px);border-right:1px solid var(--line)}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0;padding-right:0}
.stat dd{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.stat dd span{margin-left:0;line-height:1.25}
@media(max-width:767px){
  .stat{padding:28px 16px}
  .stat:nth-child(2n+1){padding-left:0}
  .stat:nth-child(2n){border-right:0;padding-right:0}
}

/* 覆盖旧的 nth-child 左内边距规则（原来第 1、3 列左 0，导致四列密度不均） */
.stat:nth-child(2n+1){padding-left:clamp(16px,2.2vw,34px)}
.stat:first-child{padding-left:0}
@media(max-width:767px){
  .stat{padding:28px 16px}
  .stat:nth-child(2n+1){padding-left:16px}
  .stat:first-child{padding-left:0}
  .stat:nth-child(2n){padding-right:0}
}

/* ===== 本社所在地（地图 + 地址） ===== */
.officemap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(22px,3vw,44px);align-items:center;margin-top:clamp(18px,2.4vw,30px)}
.officemap__map{position:relative;aspect-ratio:3/2;overflow:hidden;border:1px solid var(--line);
  background:var(--bg3)}
.officemap__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:saturate(.42) contrast(.96) brightness(1.02)}
.officemap__info{min-width:0}
.officemap__h{margin:12px 0 16px;font:400 clamp(20px,2vw,26px)/1.35 var(--serif);color:var(--fg)}
.officemap__addr{font-style:normal;font-size:13.5px;line-height:1.95;color:var(--fg2);display:flex;flex-direction:column;gap:2px}
.officemap__zip{font:400 11px/1.6 var(--mono);letter-spacing:.08em;color:var(--fg3)}
.officemap__co{color:var(--fg);margin-top:6px}
.officemap__link{display:inline-flex;align-items:center;gap:6px;margin-top:16px;margin-right:18px;
  font:400 11px/1.6 var(--mono);letter-spacing:.06em;color:var(--accent);
  border-bottom:1px solid transparent;transition:border-color .2s}
.officemap__link:hover{border-bottom-color:var(--accent)}
.officemap__note{margin:20px 0 0;font-size:11.5px;line-height:1.8;color:var(--fg3)}
@media(max-width:767px){.officemap{grid-template-columns:1fr}.officemap__map{aspect-ratio:4/3}}

/* 本社地图：本地静态图（OSM 瓦片拼接，降饱和与站点同调）+ 版权署名 */
.officemap__map a{display:block;width:100%;height:100%}
.officemap__map img{width:100%;height:100%;object-fit:cover;display:block;
  transition:filter .4s ease}
.officemap__map a:hover img{filter:saturate(.75) contrast(1.02)}
.officemap__credit{position:absolute;right:8px;bottom:6px;z-index:2;
  font:400 9px/1.4 var(--mono);letter-spacing:.04em;color:rgba(21,23,27,.55);
  background:rgba(244,241,234,.75);padding:2px 6px}

/* ===== 页脚 A2：品类改三列，四栏等高（页脚 570px → 约 331px）===== */
.ft__top{grid-template-columns:minmax(0,1.05fr) minmax(0,1.55fr) minmax(0,.95fr) minmax(0,.85fr);
  gap:clamp(20px,2.6vw,40px)}
.ft__list--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px clamp(12px,1.4vw,20px)}
.ft__list--grid li{border:0;padding:0;margin:0;min-width:0}
.ft__list--grid a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ft__social{padding:clamp(22px,2.8vw,30px) 0}
@media(max-width:1023px){
  .ft__list--grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:639px){
  .ft__list--grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
  .ft__list--grid a{font-size:11.5px}
}

/* A2 微调：品类列加宽 + 字号略降，避免「電動フォークリフト」被省略号截断 */
.ft__top{grid-template-columns:minmax(0,.95fr) minmax(0,1.9fr) minmax(0,.9fr) minmax(0,.8fr);gap:clamp(18px,2.2vw,34px)}
.ft__list--grid{gap:8px clamp(10px,1.1vw,16px)}
.ft__list--grid a{font-size:11.5px;letter-spacing:.02em}
@media(max-width:639px){.ft__list--grid a{font-size:11px;letter-spacing:0}}

/* 本社所在地段：标题单列 + 地图与地址顶端对齐 + 上下留白收敛（原 942px → 约 700px） */
.sec--office{padding-top:clamp(56px,6vw,88px);padding-bottom:clamp(56px,6vw,88px)}
.sec--office .sec__hd{display:block;margin-bottom:clamp(20px,2.4vw,32px)}
.sec--office .sec__desc{margin-top:14px;max-width:52ch}
.officemap{align-items:start;margin-top:0}
.officemap__info{padding-top:2px}

/* 页头 QINGDAO 上方的青岛火炬图标（纵向堆叠） */
.logo__locale{display:inline-flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.logo__torch{display:block;width:9px;height:13px;flex:0 0 auto}
@media(max-width:1279px){.logo__torch{width:8px;height:11px}}
.logo__torch{width:11px;height:16px}

/* ===== ホーム PROCESS カード：全体をリンク化 ===== */
.step{position:relative}
.step__link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.step__link h3{transition:color .2s ease}
.step__link:hover h3{color:var(--accent-d,var(--accent))}
.step__more{display:inline-flex;align-items:center;gap:5px;margin-top:14px;
  font:400 10.5px/1.4 var(--mono);letter-spacing:.1em;color:var(--accent);
  opacity:.75;transition:opacity .2s,gap .2s}
.step__link:hover .step__more{opacity:1;gap:9px}

/* ===== 工程詳細ページ ===== */
.page-hero--proc .page-hero__h{max-width:20ch}
.proc-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.proc-meta__i{display:inline-block;padding:6px 12px;border:1px solid var(--line);
  font:400 11px/1.5 var(--mono);letter-spacing:.05em;color:var(--fg2)}
.proc-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);
  gap:clamp(28px,4vw,64px);align-items:start}
.proc-h{font:400 clamp(17px,1.6vw,20px)/1.4 var(--serif);color:var(--fg);
  margin:clamp(30px,3.4vw,44px) 0 18px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.proc-body > .proc-h:first-child{margin-top:0}
.proc-steps{list-style:none;margin:0;padding:0;display:grid;gap:18px;
  counter-reset:ps}
.proc-step{position:relative;padding-left:34px;counter-increment:ps}
.proc-step::before{content:counter(ps,decimal-leading-zero);position:absolute;left:0;top:2px;
  font:400 11px/1.6 var(--mono);color:var(--accent);letter-spacing:.06em}
.proc-step h3{margin:0 0 5px;font:500 14px/1.6 var(--sans);color:var(--fg)}
.proc-step p{margin:0;font-size:13px;line-height:1.95;color:var(--fg2)}
.proc-out{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.proc-out li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.85;color:var(--fg2)}
.proc-out li::before{content:"";position:absolute;left:0;top:12px;width:10px;height:1px;background:var(--accent)}
.proc-faq{margin:0;display:grid;gap:16px}
.proc-faq__i dt{font:500 13px/1.7 var(--sans);color:var(--fg)}
.proc-faq__i dd{margin:5px 0 0;font-size:13px;line-height:1.9;color:var(--fg2)}
.proc-side{position:sticky;top:96px;padding:clamp(20px,2.4vw,28px);
  border:1px solid var(--line);background:var(--bg3)}
.proc-side__h{margin:0 0 14px;font:400 12px/1.5 var(--mono);letter-spacing:.1em;color:var(--fg3);
  text-transform:uppercase}
.proc-side__list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:10px}
.proc-side__list li{position:relative;padding-left:16px;font-size:12.5px;line-height:1.8;color:var(--fg2)}
.proc-side__list li::before{content:"—";position:absolute;left:0;color:var(--fg3)}
.proc-side__cta{display:block;text-align:center}
.proc-nav{border-top:1px solid var(--line);background:var(--bg3)}
.proc-nav__in{display:grid;grid-template-columns:1fr auto;gap:var(--gap,24px);
  padding-top:clamp(28px,3vw,40px);padding-bottom:clamp(28px,3vw,40px)}
.proc-nav__a{display:flex;flex-direction:column;gap:5px;text-decoration:none;color:inherit}
.proc-nav__a--next{text-align:right;align-items:flex-end}
.proc-nav__k{font:400 10px/1.5 var(--mono);letter-spacing:.1em;color:var(--fg3)}
.proc-nav__t{font:400 14px/1.5 var(--sans);color:var(--fg);transition:color .2s}
.proc-nav__a:hover .proc-nav__t{color:var(--accent)}
@media(max-width:900px){
  .proc-wrap{grid-template-columns:1fr}
  .proc-side{position:static}
}

/* ===== PROCESS 卡片交互：编号保留 + hover 动态反馈 + 整卡可点 ===== */
.step__link{position:relative;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.step__n{transition:color .28s ease,transform .28s cubic-bezier(.2,.7,.2,1)}
.step__link h3{transition:color .28s ease}
.step__more i{transition:transform .28s cubic-bezier(.2,.7,.2,1)}
/* 底部铜线从左扫入 */
.step__link::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:var(--accent-d,var(--accent));transform:scaleX(0);transform-origin:left center;
  transition:transform .42s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){
  .step__link:hover{transform:translateY(-3px)}
  .step__link:hover::after{transform:scaleX(1)}
  .step__link:hover .step__n{transform:translateY(-2px)}
  .step__link:hover .step__more{opacity:1}
  .step__link:hover .step__more i{transform:translateX(4px)}
}
/* 触屏：按下时给同样的反馈 */
.step__link:active{transform:translateY(-1px)}
.step__link:active::after{transform:scaleX(1)}
/* 键盘可达：焦点态与 hover 同反馈 */
.step__link:focus-visible{outline:2px solid var(--accent-d,var(--accent));outline-offset:6px}
.step__link:focus-visible::after{transform:scaleX(1)}
.step__link:focus-visible .step__n{transform:translateY(-2px)}
.step__link:focus-visible .step__more i{transform:translateX(4px)}

/* ===== PROCESS 卡片：编号「进度横线」+ 过渡补全 + 无障碍 ===== */
.step__n{position:relative}
.step__n::after{content:"";position:absolute;left:0;top:calc(100% + 9px);height:1px;width:0;
  background:var(--accent-d,var(--accent));
  transition:width .25s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover){
  .step__link:hover .step__n::after{width:28px}
}
.step__link:focus-visible .step__n::after{width:28px}

/* 参与变化的所有属性都带过渡（整卡 / 编号 / 标题 / 箭头 / 底部线） */
.step__link{transition:transform .28s cubic-bezier(.2,.7,.2,1), background-color .28s ease}
.step__n{transition:color .25s ease, transform .25s cubic-bezier(.2,.7,.2,1)}
.step__link h3{transition:color .28s ease}
.step__more{transition:opacity .25s ease, gap .25s ease}
.step__more i{transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.step__link::after{transition:transform .42s cubic-bezier(.2,.7,.2,1)}

/* 减弱动效：只保留颜色变化（位移/扫线/横线全部关闭） */
@media(prefers-reduced-motion:reduce){
  .step__link,.step__n,.step__link::after,.step__n::after,.step__more,.step__more i,.step__link h3{
    transition:none !important}
  .step__link:hover{transform:none !important}
  .step__link:hover::after{transform:scaleX(0) !important}
  .step__link:hover .step__n{transform:none !important}
  .step__link:hover .step__n::after{width:0 !important}
  .step__link:hover .step__more i{transform:none !important}
  .step__link:focus-visible .step__n::after{width:0 !important}
}

/* ===== 页头出口港轮播（QINGDAO → SHENZHEN → SHANGHAI，3s）===== */
.logo__locale{display:inline-flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.logo__portmark{position:relative;display:block;width:11px;height:16px}
/* 旧图标先出（0.26s），新图标延后 0.24s 再入 —— 重叠仅 0.02s，肉眼几乎只看到一个 */
.logo__landmark{position:absolute;left:0;top:0;width:11px;height:16px;opacity:0;
  transform:translateY(2px) scale(.96);
  transition:opacity .26s ease 0s,transform .26s cubic-bezier(.2,.7,.2,1) 0s}
.logo__landmark.is-on{opacity:1;transform:none;
  transition:opacity .26s ease .24s,transform .26s cubic-bezier(.2,.7,.2,1) .24s}
.logo__portname{position:relative;display:block;height:1em;min-width:9ch;text-align:center}
.logo__portname>span{position:absolute;left:0;right:0;top:0;opacity:0;
  transition:opacity .26s ease 0s}
.logo__portname>span.is-on{opacity:1;transition:opacity .26s ease .24s}
@media(prefers-reduced-motion:reduce){
  .logo__landmark,.logo__portname>span{transition:none}
  .logo__landmark{transform:none}
}

/* ===== 工程页顶部「全行程」条（当前步高亮，其余可点）===== */
.proc-rail{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg3)}
.proc-rail__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0;padding:0}
.proc-rail__i{min-width:0;border-right:1px solid var(--line)}
.proc-rail__i:last-child{border-right:0}
.proc-rail__i a{display:flex;align-items:baseline;gap:9px;padding:15px clamp(10px,1.3vw,18px);
  color:var(--fg2);text-decoration:none;transition:background .2s ease,color .2s ease}
.proc-rail__i a:hover{background:var(--bg);color:var(--fg)}
.proc-rail__n{font:400 10px/1.5 var(--mono);letter-spacing:.06em;color:var(--fg3);flex:0 0 auto}
.proc-rail__t{font-size:11.5px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proc-rail__i.is-cur{display:flex;align-items:baseline;gap:9px;padding:15px clamp(10px,1.3vw,18px);background:var(--bg);box-shadow:inset 0 -2px 0 var(--accent)}
.proc-rail__i.is-cur .proc-rail__n{color:var(--accent)}
.proc-rail__i.is-cur .proc-rail__t{color:var(--fg);font-weight:500}
@media(max-width:900px){
  .proc-rail__list{grid-template-columns:repeat(5,minmax(132px,1fr));overflow-x:auto;
    -webkit-overflow-scrolling:touch}
  .proc-rail__list::-webkit-scrollbar{height:0}
}

/* ===== 本社所在地右栏：三个出口港地图 ===== */
.portlist{margin-top:clamp(22px,2.6vw,32px);padding-top:clamp(18px,2.2vw,24px);border-top:1px solid var(--line)}
.portlist__h{display:block;font:400 10px/1.5 var(--mono);letter-spacing:.12em;color:var(--fg3);
  text-transform:uppercase;margin-bottom:12px}
.portlist__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.portlist__i{display:block;text-decoration:none;color:inherit}
.portlist__i img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover;
  border:1px solid var(--line);transition:filter .3s ease,border-color .3s ease}
.portlist__i:hover img{filter:saturate(.8) contrast(1.02);border-color:var(--accent)}
.portlist__t{display:block;margin-top:7px;font-size:11px;line-height:1.4;color:var(--fg)}
.portlist__s{display:block;font:400 9.5px/1.5 var(--mono);letter-spacing:.05em;color:var(--fg3);margin-top:1px}
@media(max-width:767px){.portlist__row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .portlist__t{font-size:10.5px}}

/* ===== 三つの事業：竖线两侧留白对称（原来左 0 / 右 28，内容贴着竖线） ===== */
.biz__item{padding:32px 28px}
.biz__item:first-child{padding-left:0}
.biz__item:last-child{padding-right:0}
@media(max-width:1023px){
  .biz__item{padding:28px 0}
}

/* ===== 三つの事業：改用 gap + 伪元素竖线，三列真正等宽且留白对称 ===== */
.biz{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(28px,3.6vw,60px)}
.biz__item{padding:32px 0;border-right:0;position:relative}
.biz__item:not(:last-child)::after{content:"";position:absolute;top:32px;bottom:32px;width:1px;
  background:var(--line);right:calc(-1 * clamp(14px,1.8vw,30px))}
@media(max-width:1023px){
  .biz{grid-template-columns:1fr;gap:0}
  .biz__item{padding:28px 0;border-bottom:1px solid var(--line)}
  .biz__item:not(:last-child)::after{display:none}
}

/* ===== 四つの強み：同「三つの事業」——gap + 伪元素竖线，四列真正等宽 ===== */
.strengths{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,44px)}
.str{padding:34px 0 38px;border-right:0;position:relative}
.str:not(:last-child)::after{content:"";position:absolute;top:0;bottom:0;width:1px;
  background:var(--line);right:calc(-1 * clamp(12px,1.5vw,22px))}
@media(max-width:1023px){
  .strengths{grid-template-columns:repeat(2,minmax(0,1fr))}
  .str{padding:28px 0;border-bottom:1px solid var(--line)}
  .str::after{display:none}
  .str:nth-child(odd)::after{display:block}
}
@media(max-width:560px){
  .strengths{grid-template-columns:1fr}
  .str{padding:24px 0}
  .str::after{display:none !important}
}

/* ==========================================================================
   全站多列区块：消除「左 padding 0 / 右 padding N」的不对称
   —— 与三つの事業・四つの強み 同一方案：gap 控制列距，伪元素画竖线
   ========================================================================== */

/* 首页 PROCESS 五步 */
.steps{gap:0 clamp(18px,2.2vw,34px)}
.step{padding:34px 0 36px;border-right:0;position:relative}
.step:not(:last-child)::after{content:"";position:absolute;top:34px;bottom:36px;width:1px;
  background:var(--line);right:calc(-1 * clamp(9px,1.1vw,17px))}

/* 市場頁 4 个统计 */
.mkstats{gap:0 clamp(16px,2vw,30px)}
.sec--mkstat .stat{padding:26px 0 28px;border-right:0;position:relative}
.sec--mkstat .stat:not(:last-child)::after{content:"";position:absolute;top:26px;bottom:28px;
  width:1px;background:var(--line);right:calc(-1 * clamp(8px,1vw,15px))}

/* export 页 3 条说明 */
.ex__notes{gap:0 clamp(20px,2.6vw,40px)}
.ex__note{padding:32px 0;border-right:0;position:relative}
.ex__note:not(:last-child)::after{content:"";position:absolute;top:32px;bottom:32px;width:1px;
  background:var(--line);right:calc(-1 * clamp(10px,1.3vw,20px))}

/* estimate 首屏 3 条承诺（深色底，线用半透明白） */
.qpromises{gap:0 clamp(20px,2.6vw,40px)}
.qpromise{padding:26px 0 30px;border-right:0;position:relative}
.qpromise:not(:last-child)::after{content:"";position:absolute;top:26px;bottom:30px;width:1px;
  background:rgba(255,255,255,.13);right:calc(-1 * clamp(10px,1.3vw,20px))}

/* 窄屏统一：去竖线，改横线分隔 */
@media(max-width:1023px){
  .steps{gap:0}
  .step{padding:28px 0;border-bottom:1px solid var(--line)}
  .step::after{display:none !important}
  .mkstats{gap:0 18px}
  .ex__notes{gap:0}
  .ex__note{padding:26px 0}
  .ex__note::after{display:none !important}
}
@media(max-width:560px){
  .ex__notes{grid-template-columns:1fr}
  .mkstats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .qpromises{grid-template-columns:1fr}
  .qpromise{padding:22px 0}
  .qpromise::after{display:none !important}
}

/* 出口港 6 个 → 两列三行（每格比三列时更大，图仍 8:5） */
.portlist__row{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:767px){.portlist__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}

/* 出口港：6 个改为全宽一行（原在右栏 2 列会把本社段撑到 1225px，左栏留大片空白） */
.portlist{margin-top:clamp(30px,3.4vw,46px);padding-top:clamp(22px,2.6vw,30px);border-top:1px solid var(--line)}
.portlist__row{grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(8px,1.1vw,16px)}
@media(max-width:1023px){.portlist__row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}}
@media(max-width:639px){.portlist__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .portlist__t{font-size:10.5px}}
