/* 二期页面样式表 · 由 02-生成脚本/build_phase2_css.py 生成
   来源：09-设计样张/_design-l1-v8.html 的内联样式 + 导航/菜单补充
   勿手改，改样张或本脚本后重跑 */

:root{
  --brand:#1677CB; --brand-2:#1163A8; --brand-deep:#0A4479; --brand-ink:#0A4479;
  --brand-50:#EAF3FB; --brand-100:#F5FAFE;
  --accent:#EA6D00; --accent-2:#D25A00;
  --hl:#FFA24A;
  --ink:#14293C; --ink-2:#55697D; --ink-3:#91A3B4;
  --line:#DDE7F0; --soft:#F5F9FC; --white:#fff;
  --r-sm:6px; --r:10px; --r-lg:16px;
  --sh-1:0 2px 10px rgba(10,68,121,.06);
  --sh-2:0 6px 22px rgba(10,68,121,.09);
  --wrap:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--ink);background:#fff;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;letter-spacing:.01em}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.topbar{background:var(--brand-deep);color:rgba(255,255,255,.8);font-size:12.5px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:34px}
.topbar b{color:#fff;font-weight:500}
.nav{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.nav .wrap{display:flex;align-items:center;gap:26px;height:66px}
.logo-img{height:30px;width:auto;display:block}
.logo{font-size:19px;font-weight:600;color:var(--brand);white-space:nowrap}
.nav ul{display:flex;gap:22px;list-style:none;font-size:15px}
.nav ul a{color:var(--ink-2);padding:5px 0;border-bottom:2px solid transparent;transition:.2s}
.nav ul a:hover,.nav ul a.on{color:var(--brand);border-bottom-color:var(--brand)}
.nav .cta{margin-left:auto;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;padding:10px 22px;border-radius:999px;font-size:15px;font-weight:500;box-shadow:0 4px 14px rgba(234,109,0,.28)}
.crumb{font-size:12.5px;color:var(--ink-3);padding:16px 0}
.crumb a:hover{color:var(--brand)}.crumb span{margin:0 7px}

.hero{background:linear-gradient(135deg,#0A4479 0%,#0F63AD 58%,#1677CB 100%);color:#fff;position:relative;overflow:hidden;padding:70px 0 0}
.hero::before{content:"";position:absolute;right:-70px;top:-90px;width:340px;height:340px;border-radius:50%;background:rgba(255,255,255,.07)}
.hero::after{content:"";position:absolute;right:150px;bottom:-140px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.05)}
.hero .wrap{position:relative;z-index:1}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;letter-spacing:.055em;color:rgba(255,255,255,.8);background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 15px;margin-bottom:22px}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--hl);display:block}
.hero h1 .hl{color:var(--hl)}
.hero h1{font-size:46px;line-height:1.16;font-weight:600;max-width:14.5em;letter-spacing:-.022em;text-wrap:balance}
.hero .sub{font-size:16.5px;color:rgba(255,255,255,.88);margin-top:22px;max-width:33em;line-height:1.95;text-wrap:pretty}
.hero .sub b{color:#fff;font-weight:500}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.btn{display:inline-flex;align-items:center;gap:9px;padding:16px 36px;border-radius:var(--r-sm);font-size:16.5px;font-weight:500;transition:.2s}
.btn-main{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 10px 26px rgba(234,109,0,.32)}
.btn-main:hover{transform:translateY(-1px);box-shadow:0 14px 32px rgba(234,109,0,.38)}
.btn-ghost{border:1px solid rgba(255,255,255,.4);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:52px;border-top:1px solid rgba(255,255,255,.16)}
.stats div{padding:30px 26px 34px;border-right:1px solid rgba(255,255,255,.16)}
.stats div:first-child{padding-left:0}
.stats div:last-child{border-right:0}
.stats b{display:block;font-size:42px;font-weight:600;line-height:1;letter-spacing:-.025em;font-variant-numeric:tabular-nums;background:linear-gradient(120deg,#fff,rgba(255,255,255,.6));-webkit-background-clip:text;background-clip:text;color:transparent}
.stats span{display:block;font-size:13.5px;color:rgba(255,255,255,.62);margin-top:12px}

.sec{padding:84px 0}
.sec.soft{background:var(--soft)}
.sec.dark{background:var(--brand-ink);color:#fff}
.sec-head{margin:0 auto 30px;max-width:760px;text-align:center}
.sec-head::after{content:"";display:block;margin-top:24px;height:1px;background:linear-gradient(90deg,rgba(220,232,234,0) 0%,var(--line) 24%,var(--line) 76%,rgba(220,232,234,0) 100%)}
.split .sec-head{text-align:left;margin-left:0}
.split .sec-head::after{background:linear-gradient(90deg,var(--line) 0%,rgba(220,232,234,0) 70%)}
.sec.dark .sec-head::after{background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.2) 24%,rgba(255,255,255,.2) 76%,rgba(255,255,255,0) 100%)}
.sec.dark .split .sec-head::after{background:linear-gradient(90deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 70%)}
.sec-head .badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#fff;background:var(--brand);border-radius:999px;padding:6px 15px;margin-bottom:18px;font-weight:500;letter-spacing:.06em;box-shadow:0 2px 8px rgba(22,119,203,.28)}
.sec-head .badge::before{content:"";width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.8);display:block}
.sec-head h2{font-size:34px;font-weight:600;line-height:1.28;letter-spacing:-.024em;text-wrap:balance}
.sec-head p{font-size:16.5px;color:var(--ink-2);margin:16px auto 0;line-height:1.85;max-width:36em;text-wrap:pretty}
.sec.dark .sec-head .badge{color:#fff;background:var(--accent-2);box-shadow:0 2px 10px rgba(0,0,0,.22)}
.sec.dark .sec-head .badge::before{background:rgba(255,255,255,.85)}
.sec.dark .sec-head p{color:rgba(255,255,255,.62)}

.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:.25s;box-shadow:var(--sh-1)}
.card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--brand),var(--brand-2));transform:scaleX(0);transform-origin:left;transition:transform .35s;z-index:2}
.card:hover{box-shadow:var(--sh-2);transform:translateY(-3px);border-color:#C9DEF3}
.card:hover::before{transform:scaleX(1)}
.card .ph{width:100%;flex:0 0 auto;aspect-ratio:16/10;overflow:hidden;background:var(--brand-50)}
.card .ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}
.card:hover .ph img{transform:scale(1.05)}
.card .bd{padding:20px 22px 20px;display:flex;flex-direction:column;flex:1;min-width:0}
.card h3{font-size:17px;font-weight:600;margin-bottom:10px;line-height:1.42;letter-spacing:-.012em}
.card .sym{display:flex;flex-wrap:wrap;gap:6px;background:none;border:0;padding:0;margin-bottom:12px}
.card .sym span{font-size:12px;color:var(--brand-2);background:var(--brand-50);border:1px solid #CFE0F2;border-radius:7px;padding:4px 10px;line-height:1.45;letter-spacing:.01em;white-space:nowrap}
.sym{font-size:13px;color:var(--brand-2);background:var(--brand-100);border:1px solid #C9DEF3;padding:11px 13px;border-radius:var(--r-sm);line-height:2;letter-spacing:.01em;margin-bottom:15px}
.card p{font-size:14px;color:var(--ink-2);line-height:1.78;flex:1;text-wrap:pretty}
.card .go{margin-top:13px;font-size:14px;color:var(--brand);font-weight:500;display:flex;align-items:center;gap:6px}
.card .go::after{content:"→";transition:transform .2s}
.card:hover .go::after{transform:translateX(4px)}

.symlist{display:grid;grid-template-columns:1fr 1fr;gap:0 56px}
.symrow{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line)}
.symrow .tag{flex-shrink:0;width:86px;font-size:12px;color:#fff;background:var(--brand);border-radius:8px;padding:7px 0;text-align:center;font-weight:500;letter-spacing:.04em;box-shadow:0 2px 8px rgba(22,119,203,.28)}
.symrow .txt h3{font-size:16px;font-weight:600;margin-bottom:7px;line-height:1.45;letter-spacing:-.01em}
.symrow .txt p{font-size:14px;color:var(--ink-2);line-height:1.8;text-wrap:pretty}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split .photo{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.35)}
.split .photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.split .photo .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 24px 18px;background:linear-gradient(to top,rgba(8,33,58,.9),transparent);font-size:13.5px;color:rgba(255,255,255,.9)}
.trust{display:grid;gap:2px}
.trust .row{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.trust .row:last-child{border-bottom:0}
.trust .ic{flex-shrink:0;width:42px;height:42px;border-radius:10px;background:rgba(255,162,74,.12);display:flex;align-items:center;justify-content:center}
.trust h3{font-size:17px;font-weight:600;margin-bottom:8px;letter-spacing:-.012em;line-height:1.4}
.trust p{font-size:14.5px;color:rgba(255,255,255,.76);line-height:1.8;text-wrap:pretty}

.price-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1)}
.promise-bar{background:linear-gradient(120deg,var(--brand-deep),#1163A8);color:#fff;padding:20px 30px;display:flex;flex-wrap:wrap;gap:10px 32px;font-size:14.5px}
.promise-bar span{display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.93)}
.promise-bar i{width:17px;height:17px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:11px;font-style:normal;flex-shrink:0}
.price-wrap table{width:100%;border-collapse:collapse;table-layout:fixed}
.price-wrap th{background:var(--soft);font-size:12.5px;font-weight:500;color:var(--ink-3);letter-spacing:.06em;text-align:left;padding:16px 30px;border-bottom:1px solid var(--line)}
.price-wrap td{padding:19px 30px;border-bottom:1px solid var(--line);font-size:15px;vertical-align:top;font-variant-numeric:tabular-nums}
.price-wrap tr:last-child td{border-bottom:0}
.price-wrap .amt{color:var(--accent);font-weight:600;white-space:nowrap;width:165px;font-size:16.5px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.price-wrap .note{font-size:13.5px;color:var(--ink-2)}
.hot{display:inline-block;font-size:11px;color:#fff;background:var(--brand);border-radius:999px;padding:2px 9px;margin-left:8px;vertical-align:2px;font-weight:500;box-shadow:0 2px 6px rgba(22,119,203,.3)}
.price-foot{padding:17px 30px;background:var(--brand-100);font-size:13.5px;color:var(--brand-2);border-top:1px solid #C9DEF3}

.timeline{position:relative;display:grid;grid-template-columns:repeat(6,1fr);counter-reset:t;padding-top:6px}
.timeline::before{content:"";position:absolute;left:8.5%;right:8.5%;top:24px;height:2px;background:linear-gradient(90deg,#D2E4F4,var(--brand) 18%,var(--brand) 82%,#D2E4F4)}
.tl{position:relative;text-align:center;padding:0 12px}
.tl::before{counter-increment:t;content:counter(t);position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin:0 auto 18px;border-radius:50%;background:#fff;border:2px solid var(--brand);color:var(--brand);font-size:15px;font-weight:600}
.tl h3{font-size:15.5px;font-weight:600;margin-bottom:9px;line-height:1.45;letter-spacing:-.01em}
.tl p{font-size:14px;color:var(--ink-2);line-height:1.78}

.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.case{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-1);transition:.25s}
.case:hover{box-shadow:var(--sh-2);transform:translateY(-4px)}
.case img{width:100%;aspect-ratio:16/10;object-fit:cover}
.case .bd{padding:22px 24px 24px}
.case .top{display:flex;align-items:center;gap:11px;margin-bottom:14px}
.case .ic{width:40px;height:40px;border-radius:11px;background:var(--brand-50);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.case .loc{font-size:12.5px;color:var(--ink-3)}
.case h3{font-size:16.5px;font-weight:600;line-height:1.45;margin-bottom:10px;letter-spacing:-.012em}
.case p{font-size:14.5px;color:var(--ink-2);line-height:1.82;text-wrap:pretty}
.case .res{display:inline-block;font-size:11.5px;font-weight:500;color:#fff;background:var(--brand);border-radius:999px;padding:4px 13px;margin-top:14px;letter-spacing:.04em;box-shadow:0 2px 8px rgba(22,119,203,.28)}

.rlist{display:grid;grid-template-columns:1fr 1fr;gap:0 46px;border-top:1px solid var(--line);margin-top:-4px}
.ritem{display:flex;align-items:center;gap:15px;padding:15px 2px;border-bottom:1px solid var(--line);transition:.2s}
.ritem:hover .rn{color:var(--brand)}
.ritem .rn{flex:0 0 auto;min-width:6.2em;font-size:15.5px;font-weight:600;letter-spacing:-.012em;transition:.2s}
.ritem .rm{flex:1;font-size:12.5px;color:var(--ink-3);letter-spacing:.01em}
.ritem .arw{flex:0 0 auto;color:var(--ink-3);font-size:15px;transition:.25s}
.ritem:hover .arw{color:var(--brand);transform:translateX(4px)}
.striplabel{margin-top:38px;padding-top:28px;border-top:1px solid var(--line);font-size:12.5px;font-weight:500;color:var(--ink-3);letter-spacing:.08em}
.strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.strip a{font-size:13px;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 15px;transition:.2s}
.strip a:hover{color:#fff;border-color:var(--brand);background:var(--brand);box-shadow:0 4px 12px rgba(22,119,203,.24)}

.faqgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
.qa{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px;box-shadow:var(--sh-1);transition:.25s}
.qa:hover{border-color:var(--brand-2);box-shadow:var(--sh-2);transform:translateY(-2px)}
.qa .qn{display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:500;color:#fff;background:var(--brand);border-radius:6px;padding:3px 8px;letter-spacing:.08em;font-variant-numeric:tabular-nums;box-shadow:0 2px 8px rgba(22,119,203,.26)}
.qa h3{font-size:16.5px;font-weight:600;line-height:1.45;letter-spacing:-.012em;margin:13px 0 9px}
.qa p{font-size:14.5px;color:var(--ink-2);line-height:1.85;text-wrap:pretty}

.bookwrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:52px;align-items:start}
.bookside h3{font-size:25px;font-weight:600;line-height:1.35;margin-bottom:15px;letter-spacing:-.018em}
.bookside p{font-size:15px;color:var(--ink-2);line-height:1.8;margin-bottom:22px}
.bookside .item{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);padding:11px 0;border-bottom:1px dashed var(--line)}
.bookside .item:last-child{border-bottom:0}
.bookside .item i{width:18px;height:18px;border-radius:50%;background:var(--brand-50);color:var(--brand);font-size:11px;font-style:normal;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.book{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:34px 36px;box-shadow:var(--sh-2)}
.book h3{font-size:21px;font-weight:600;margin-bottom:8px;letter-spacing:-.016em}
.book .hint{font-size:14.5px;color:var(--ink-2);margin-bottom:26px;line-height:1.8}
.book .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:18px}
.book label{display:block;font-size:13.5px;color:var(--ink-2);margin-bottom:8px;font-weight:500}
.book input,.book select{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:15px;font-family:inherit;color:var(--ink);background:var(--soft);transition:.2s}
.book input:focus,.book select:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px rgba(22,119,203,.15)}
.book .submit{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:0;width:100%;padding:17px;border-radius:var(--r-sm);font-size:16.5px;font-weight:500;font-family:inherit;cursor:pointer;margin-top:8px;box-shadow:0 8px 20px rgba(234,109,0,.26)}

.endcta{background:linear-gradient(160deg,#0A4479,#1163A8);color:#fff;padding:66px 0 60px;text-align:center}
.endcta h2{font-size:32px;font-weight:600;margin-bottom:14px;letter-spacing:-.022em}
.endcta p{color:rgba(255,255,255,.84);font-size:15.5px;margin-bottom:30px;letter-spacing:.01em}
.bigphone{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-radius:var(--r);padding:18px 38px;font-size:26px;font-weight:600;letter-spacing:.5px;box-shadow:0 8px 22px rgba(234,109,0,.28)}
.foot{background:#0A4479;color:rgba(255,255,255,.68);padding:56px 0 32px;font-size:14px}
.foot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:36px}
.foot h4{color:rgba(255,255,255,.66);font-size:12.5px;font-weight:500;letter-spacing:.08em;margin-bottom:16px}
.foot li{list-style:none;margin-bottom:11px}
.foot a:hover{color:#fff}
.foot .base{margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:rgba(255,255,255,.5)}
.floatbar{display:none}
@media(max-width:1024px){
  .cards,.cases{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:768px){
  .nav ul{display:none}.nav .wrap{gap:12px;height:58px}
  .logo{font-size:17px}.nav .cta{padding:9px 18px;font-size:14px}
  .topbar .wrap{height:32px;font-size:12px}
  .hero{padding:36px 0 0}
  .hero h1{font-size:26px;line-height:1.3;max-width:none;letter-spacing:-.02em}
  .hero .sub{font-size:15px;margin-top:15px;line-height:1.85}
  .btns{margin-top:22px;gap:10px}
  .btn{flex:1 1 100%;justify-content:center;padding:15px 20px;font-size:16px}
  .stats{grid-template-columns:1fr 1fr;margin-top:30px}
  .stats div{padding:18px 0 20px 14px;border-right:0;border-left:2px solid rgba(255,255,255,.22)}
  .stats div:first-child{padding-left:14px}
  .stats b{font-size:26px}.stats span{font-size:12px;margin-top:8px}
  .sec{padding:52px 0}.sec-head{margin-bottom:28px}
  .sec-head h2{font-size:23px;line-height:1.34}.sec-head p{font-size:15px;line-height:1.85}
  .cards,.cases{grid-template-columns:1fr;gap:16px}
  .rlist{grid-template-columns:1fr;gap:0}
  .card .ph{aspect-ratio:16/9}
  .card .sym span{font-size:11.5px;padding:3px 9px}
  .symlist,.faqgrid,.split,.bookwrap{grid-template-columns:1fr;gap:0}
  .faqgrid{gap:13px}
  .qa{padding:22px 22px}
  .symlist{gap:0}
  .symrow{padding:16px 0;gap:13px}
  .symrow .tag{width:70px;font-size:12px}
  .symrow .txt h3{font-size:14.5px}.symrow .txt p{font-size:13px}
  .split{gap:26px}.trust{padding-top:6px}
  .promise-bar{padding:16px 20px;flex-direction:column;gap:9px;font-size:13.5px}
  .price-wrap table,.price-wrap thead,.price-wrap tbody,.price-wrap tr,.price-wrap th,.price-wrap td{display:block;width:auto}
  .price-wrap thead{display:none}
  .price-wrap tr{padding:17px 20px;border-bottom:1px solid var(--line)}
  .price-wrap td{border:0;padding:0}
  .price-wrap td:first-child{font-size:15.5px;font-weight:600}
  .price-wrap .amt{display:block;width:auto;font-size:19px;margin:5px 0 6px}
  .price-wrap .note{display:block;font-size:13px;line-height:1.65}
  .price-foot{padding:14px 20px;font-size:13px;line-height:1.7}
  .timeline{grid-template-columns:1fr;padding-left:26px}
  .timeline::before{left:8px;right:auto;top:8px;bottom:8px;width:2px;height:auto;background:linear-gradient(180deg,#D2E4F4,var(--brand) 18%,var(--brand) 82%,#D2E4F4)}
  .tl{text-align:left;padding:0 0 26px}
  .tl::before{margin:0 0 12px -45px;position:relative;left:0}
  .tl h3{font-size:15px}.tl p{font-size:13.5px}
  .striplabel{margin-top:32px;padding-top:24px}
  .strip{margin-top:13px}
  .book{padding:24px 20px;box-shadow:var(--sh-1)}
  .book .row{grid-template-columns:1fr;gap:14px}
  .book input,.book select{padding:14px 15px;font-size:16px}
  .bookside h3{font-size:20px}
  .endcta{padding:46px 0 42px}.endcta h2{font-size:21px}
  .bigphone{font-size:21px;padding:15px 26px}
  .foot{padding:40px 0 26px}.foot .cols{grid-template-columns:1fr 1fr;gap:26px}
  body{padding-bottom:66px}
  .floatbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:200;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom));gap:10px;
    background:rgba(255,255,255,.97);backdrop-filter:blur(10px);box-shadow:0 -3px 16px rgba(15,23,42,.1)}
  .floatbar a{flex:1;text-align:center;padding:14px 0;border-radius:11px;font-size:15.5px;font-weight:500}
  .floatbar .c1{color:var(--brand);border:1px solid #C9DEF3;background:var(--brand-100)}
  .floatbar .c2{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}
}

/* ==================== 滚动显现 / 首屏载入（对标线上首页，做错峰增强） ==================== */
.reveal{opacity:0;translate:0 26px;
  transition:opacity .62s cubic-bezier(.22,.7,.28,1),translate .62s cubic-bezier(.22,.7,.28,1)}
.reveal.visible{opacity:1;translate:0 0}
@keyframes phonePulse{0%,100%{box-shadow:0 0 0 0 rgba(234,109,0,.3)}50%{box-shadow:0 0 0 13px rgba(234,109,0,0)}}
/* 脉冲动效已撤（2026-10-24）：在深蓝底上那圈扩散阴影看着像脏光晕，静态影更干净 */
.bigphone{animation:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;translate:none;transition:none}
  .bigphone{animation:none}
}

/* ==========================================================================
   二期外链化补充样式（2026-09-27）
   ① 桌面下拉菜单  ② 移动端汉堡菜单  ③ logo 组件（与首页一致）
   放在原样张样式之后，保证覆盖同特异性规则
   ========================================================================== */

/* ---------- ① logo：同步首页（SVG 图标 + 文字） ---------- */
.nav .logo{display:flex;align-items:center;gap:9px}
.logo-icon{width:30px;height:30px;flex-shrink:0;display:block}
.logo-text{font-size:19px;font-weight:600;color:var(--brand);white-space:nowrap;letter-spacing:-.01em}
.logo-text span{color:var(--accent)}

/* ---------- ② 桌面下拉菜单 ---------- */
.nav ul li{position:relative}
.nav .sub{display:none;position:absolute;top:100%;left:-16px;z-index:70;
  flex-direction:column;gap:0;margin:0;padding:8px 0;min-width:160px;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:0 14px 34px rgba(15,23,42,.13);list-style:none}
.nav li.has-sub:hover .sub,
.nav li.has-sub:focus-within .sub{display:flex}
.nav .sub li{position:static}
.nav .sub a{display:block;padding:9px 18px;font-size:14px;color:var(--ink-2);
  border-bottom:0;white-space:nowrap;transition:.18s}
.nav .sub a:hover{background:var(--brand-50);color:var(--brand);border-bottom-color:transparent}
.nav .sub a.on{color:var(--brand);font-weight:600}
.nav .caret{font-size:11px;margin-left:3px;opacity:.55}

/* ---------- ③ 汉堡按钮（桌面隐藏） ---------- */
.burger{display:none;margin-left:auto;width:40px;height:40px;padding:0;
  border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:4px}
.burger i{display:block;width:18px;height:2px;background:var(--ink-2);border-radius:2px}

/* ---------- 移动端（≤768）：样张原本直接隐藏导航，现改为可展开菜单 ---------- */
@media(max-width:768px){
  .burger{display:flex}
  /* 特异性 .nav ul.menulist 高于样张的 .nav ul，可覆盖 display:none */
  .nav ul.menulist{display:none;position:absolute;top:58px;left:0;right:0;z-index:80;
    flex-direction:column;gap:0;padding:6px 20px 14px;margin:0;list-style:none;
    background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 32px rgba(15,23,42,.12)}
  .nav ul.menulist.open{display:flex}
  .nav ul.menulist > li > a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
  .nav ul.menulist > li:last-child > a{border-bottom:0}
  .nav .sub{position:static;display:flex;min-width:0;margin:0 0 6px;padding:0 0 0 12px;
    background:transparent;border:0;box-shadow:none;border-radius:0}
  .nav .sub a{padding:7px 0;font-size:13.5px;color:var(--ink-3)}
  .nav .sub a:hover{background:transparent}
}

/* ===== 中英文切换入口（2026-10-19） =====
   中文站显示 EN，英文站显示 中文；路径同构，只差一层 /en/。
   放在 .cta 右侧，PC / 移动端都常驻可见（不塞进汉堡菜单，避免被折叠看不见）。 */
.nav .lang,.crumbwrap .lang{display:inline-flex;align-items:center;justify-content:center;
  padding:8px 13px;border:1px solid var(--line);border-radius:9px;
  font-size:13.5px;font-weight:600;color:var(--ink-2);text-decoration:none;
  white-space:nowrap;line-height:1;background:#fff;
  transition:border-color .18s,color .18s,background .18s}
.nav .lang:hover,.crumbwrap .lang:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-50)}
@media (max-width:900px){
  .nav .lang,.crumbwrap .lang{padding:7px 10px;font-size:12.5px;border-radius:8px}
}

/* ===== 顶部精简（2026-10-20）=====
   导航右侧「预约上门」按钮去掉后，语言入口要顶到最右。
   用「burger 的下一个兄弟就是 .lang」这个相邻选择器精确命中：
     中文站（无 cta）: burger + lang   -> 命中
     英文站（有 cta）: burger + cta + lang -> 不命中，cta 自带的 margin-left:auto 继续生效 */
.nav .burger + .lang { margin-left: auto; }

/* 面包屑靠右；语言切换排在面包屑前面，整组一起靠右（2026-10-21） */
.crumb { text-align: right; }
.crumbwrap { display:flex; justify-content:flex-end; align-items:center; gap:12px; flex-wrap:wrap; }
.crumbwrap .crumb { flex:0 1 auto; min-width:0; }
@media (max-width:768px){
  .crumbwrap { gap:10px; }
}

/* 面包屑 + 语言切换并入导航栏右侧（2026-10-21，替代原来单独占满一行的 .crumbwrap） */
.navcrumb{display:flex;align-items:center;gap:12px;margin-left:auto;min-width:0}
.navcrumb .crumb{display:none;flex:0 1 auto;min-width:0;padding:0;font-size:12.5px;color:var(--ink-3);
  text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.navcrumb .crumb a{color:var(--ink-3)}
.navcrumb .crumb a:hover{color:var(--brand)}
@media (max-width:768px){
  .navcrumb{margin-left:0;gap:8px}
  .navcrumb .crumb{display:none}
}

/* ===== 区域条 regionbar（2026-10-23）=====
   英文站 L1/L2/L3 共 2781 页在 </header> 后紧跟 .regionbar（"Nearest engineer: 各区"），
   但样式原只写在 phase2-l3.css（中文 L3 用），英文站外链的是本文件 →
   那行区名完全裸奔成一段黑色长文字。此处补齐，与 phase2-l3.css 保持一致。 */
.regionbar{background:var(--brand-100);border-bottom:1px solid #DBEAFE;font-size:13.5px}
.regionbar .wrap{display:flex;align-items:center;gap:10px;height:42px;overflow-x:auto;white-space:nowrap}
.regionbar .lbl{color:var(--ink-3);flex-shrink:0}
.regionbar a{color:var(--brand);background:#fff;border:1px solid #DBEAFE;border-radius:999px;padding:4px 13px;flex-shrink:0;transition:.2s}
.regionbar a:hover,.regionbar a.on{background:var(--brand);color:#fff;border-color:var(--brand)}
/* 滚动条太丑，细一点 */
.regionbar .wrap::-webkit-scrollbar{height:4px}
.regionbar .wrap::-webkit-scrollbar-thumb{background:#C9DEF3;border-radius:2px}
@media (max-width:768px){
  .regionbar{font-size:12.5px}
  .regionbar .wrap{height:40px;gap:8px;padding:0 14px}
  .regionbar a{padding:3px 11px}
}

/* ===== 结尾 CTA 的微信入口（2026-10-23）=====
   老外不一定会用英文打电话 → 电话旁边并列一个「WeChat + 微信号 + Copy」按钮，
   点一下把号复制走，去微信「添加朋友」粘贴即可。仅英文站生成器输出该结构。 */
/* 联系卡片：以微信为主（绿色实心大按钮），电话降为次要幽灵按钮。
   注意：.bigphone 是中文站全局主按钮，此处只在 .endcta 作用域内覆盖成次要，不动中文站。 */
.endcta .cta-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:stretch;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);
  border-radius:18px;padding:18px 24px;width:fit-content;max-width:94%;margin:0 auto;
  box-shadow:0 10px 40px rgba(0,0,0,.18)}
/* 微信：主按钮（纯微信绿填充，最醒目，排第一） */
.endcta .wxbtn{display:inline-flex;align-items:center;gap:11px;
  background:#1AAD19;color:#fff;border:1.5px solid #1AAD19;
  border-radius:var(--r);padding:17px 34px;font-size:21px;font-weight:700;letter-spacing:.2px;
  font-family:inherit;cursor:pointer;transition:transform .18s,box-shadow .18s;
  box-shadow:0 8px 24px rgba(26,173,25,.34)}
.endcta .wxbtn:hover{background:#179B17;border-color:#179B17;box-shadow:0 12px 30px rgba(26,173,25,.46)}
.endcta .wxbtn:active{transform:translateY(1px)}
.endcta .wxbtn svg{flex-shrink:0;color:#fff}   /* 绿底上白图标更清晰 */
.endcta .wxbtn .wxtxt{white-space:nowrap;display:inline-flex;align-items:baseline;gap:7px}
.endcta .wxbtn .wxnum{font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.6px}
.endcta .wxbtn .wxcopy{font-size:12px;font-weight:600;color:#fff;opacity:.85;padding-left:11px;
  border-left:1px solid rgba(255,255,255,.45);letter-spacing:.2px}
/* 电话：次要幽灵按钮（透明描边，排第二） */
.endcta .bigphone{margin:0;background:transparent;border:1.5px solid rgba(255,255,255,.55);
  color:#fff;box-shadow:none;font-size:18px;font-weight:600;padding:15px 28px;letter-spacing:.3px;
  transition:background .18s,border-color .18s}
.endcta .bigphone:hover{border-color:#fff;background:rgba(255,255,255,.1)}
.endcta p.wxhint{color:rgba(255,255,255,.82);font-size:13px;line-height:1.6;
  margin:18px auto 0;max-width:600px;letter-spacing:.01em;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);
  border-radius:999px;padding:9px 20px}
@media (max-width:768px){
  .endcta .cta-actions{display:grid;grid-template-columns:1fr;grid-auto-rows:1fr;
    gap:12px;max-width:100%;margin:0 auto;padding:14px}
  .endcta .wxbtn{font-size:16px;padding:14px 16px;justify-content:center}
  .endcta .bigphone{font-size:15px;padding:13px 16px;justify-content:center;text-align:center}
  .endcta p.wxhint{font-size:12.5px;margin-top:14px;padding:10px 16px;border-radius:14px}
}
