:root{
  --navy:#0f2a52; --navy2:#16386b; --blue:#2563eb; --blue-d:#1d4ed8;
  --teal:#0e7490; --gold:#f59e0b; --ink:#1f2937; --muted:#5b6b7f;
  --line:#e6ebf2; --bg:#f6f8fb; --card:#ffffff; --soft:#eef3fb; --green:#0f9d58;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.75; font-size:15px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none}
img{max-width:100%}
.container{max-width:1160px; margin:0 auto; padding:0 22px}
/* Header */
.header{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(8px); border-bottom:1px solid var(--line)}
.nav{display:flex; align-items:center; justify-content:space-between; height:76px}
.brand{display:flex; align-items:center; gap:14px}
.logo-wrap{width:52px; height:52px; flex-shrink:0}
.logo-wrap .logo-img{width:100%; height:100%; object-fit:contain; display:block}
.brand-text{display:flex; flex-direction:column; gap:2px; line-height:1.2}
.brand-name{font-size:22px; font-weight:800; color:var(--navy); letter-spacing:1px}
.brand-slogan{font-size:12px; color:var(--muted); font-weight:500; letter-spacing:0.5px}
.nav-links{display:flex; gap:26px; align-items:center}
.nav-links a{color:var(--muted); font-size:14.5px; font-weight:500; transition:.2s}
.nav-links a:hover{color:var(--blue)}
.btn{display:inline-block; background:var(--blue); color:#fff; padding:10px 20px; border-radius:9px;
  font-weight:600; font-size:14.5px; transition:.2s; border:none; cursor:pointer}
.btn:hover{background:var(--blue-d); transform:translateY(-1px)}
.btn-ghost{background:transparent; color:var(--navy); border:1.5px solid var(--line)}
.btn-ghost:hover{border-color:var(--blue); color:var(--blue); background:#fff}
.nav-links a.btn{color:#fff}
.nav-links a.btn:hover{color:#fff; background:var(--blue-d)}
.btn-lg{padding:14px 30px; font-size:16px}
.menu-toggle{display:none; font-size:24px; background:none; border:none; cursor:pointer; color:var(--navy)}
/* Hero */
.hero{background:linear-gradient(135deg,#0c2247 0%,#0f2a52 45%,#16386b 100%); color:#fff; padding:84px 0 76px; position:relative; overflow:hidden}
.hero::after{content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px;
  background:radial-gradient(circle,rgba(37,99,235,.35),transparent 70%); border-radius:50%}
.hero .tag{display:inline-block; border:1px solid rgba(255,255,255,.25); color:#a9c6f2; padding:5px 14px; border-radius:30px; font-size:13px; letter-spacing:1px}
.hero h1{font-size:42px; line-height:1.3; margin:20px 0 16px; font-weight:800; letter-spacing:.5px; max-width:820px}
.hero h1 .hl{color:#7cc0ff}
.hero p{font-size:17px; color:#cfe0f7; max-width:720px; margin:0 0 30px}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap}
.hero .btn-ghost{color:#fff; border-color:rgba(255,255,255,.35)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.1); color:#fff; border-color:#fff}
.hero-stats{display:flex; gap:40px; margin-top:46px; flex-wrap:wrap}
.hero-stats .s b{display:block; font-size:26px; color:#fff; font-weight:800}
.hero-stats .s span{font-size:13px; color:#9fbbe6}
/* Sections */
section{padding:70px 0}
.sec-head{text-align:center; max-width:760px; margin:0 auto 44px}
.sec-head .ey{color:var(--blue); font-weight:700; letter-spacing:2px; font-size:13px}
.sec-head h2{font-size:30px; color:var(--navy); margin:10px 0 12px; font-weight:800}
.sec-head p{color:var(--muted); font-size:15.5px}
/* Services grid */
.grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.card{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:24px 22px; transition:.25s}
.card:hover{transform:translateY(-4px); box-shadow:0 14px 34px rgba(15,42,82,.10); border-color:#cfe0fb}
.card .ico{width:46px; height:46px; border-radius:11px; background:var(--soft); color:var(--blue);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px}
.card .ico img{width:24px; height:24px; object-fit:contain}
.card h4{margin:0 0 8px; color:var(--navy); font-size:16.5px}
.card p{margin:0; color:var(--muted); font-size:13.5px; line-height:1.65}
/* USP */
.usp{background:linear-gradient(180deg,#fff,#f3f7fd)}
.usp-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px}
.usp-item{text-align:center; padding:10px 8px}
.usp-item .num{font-size:30px; font-weight:800; color:var(--blue); display:flex; align-items:center; justify-content:center}
.usp-item .num img{width:32px; height:32px; object-fit:contain}
.usp-item .t{font-weight:700; color:var(--navy); margin:6px 0 4px}
.usp-item .d{font-size:13px; color:var(--muted)}
/* Process */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; counter-reset:s}
.step{position:relative; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:26px 22px}
.step::before{counter-increment:s; content:counter(s); position:absolute; top:-16px; left:22px; width:34px; height:34px;
  background:var(--blue); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:800}
.step h4{margin:8px 0 6px; color:var(--navy)}
.step p{margin:0; color:var(--muted); font-size:13.5px}
/* Clients */
.clients{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.client{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px; transition:.2s}
.client:hover{border-color:#cfe0fb; box-shadow:0 10px 26px rgba(15,42,82,.07)}
.client .badge{display:inline-block; font-size:12px; font-weight:700; padding:3px 10px; border-radius:20px; background:var(--soft); color:var(--blue); margin-bottom:10px}
.client h4{margin:0 0 8px; color:var(--navy); font-size:16px}
.client p{margin:0; color:var(--muted); font-size:13.5px}
/* Case */
.case{background:linear-gradient(135deg,#0f2a52,#16386b); color:#fff; border-radius:16px; padding:40px; display:flex; gap:34px; flex-wrap:wrap; align-items:center; justify-content:space-between}
.case .ct{font-size:18px; font-weight:700}
.case .cd{color:#cfe0f7; max-width:620px; font-size:14.5px}
.case .stat b{font-size:34px; color:#7cc0ff; display:block}
.case .stat span{font-size:13px; color:#9fbbe6}
/* Contact */
.contact-wrap{display:grid; grid-template-columns:1fr 1fr; gap:30px}
.form{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:30px}
.form h3{margin:0 0 18px; color:var(--navy); font-size:20px}
.form-embed{width:100%; border-radius:12px; overflow:hidden; border:1px solid var(--line); background:#fff}
.form-embed iframe{width:100%; height:640px; border:0; display:block}
.form-fallback{font-size:13px; color:var(--muted); margin:12px 0 0; text-align:center}
.form-fallback a{color:var(--blue); font-weight:600; text-decoration:none}
.field{margin-bottom:14px}
.field label{display:block; font-size:13.5px; color:var(--muted); margin-bottom:6px; font-weight:600}
.field input,.field select,.field textarea{width:100%; padding:11px 13px; border:1.5px solid var(--line); border-radius:9px; font-size:14px; font-family:inherit; transition:.2s; background:#fbfdff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--blue); background:#fff}
.field textarea{resize:vertical; min-height:90px}
.info{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:30px}
.info h3{margin:0 0 16px; color:var(--navy); font-size:20px}
.info .row{display:flex; gap:12px; padding:12px 0; border-bottom:1px dashed var(--line); font-size:14.5px}
.info .row:last-child{border:none}
.info .row b{color:var(--navy); min-width:74px; display:inline-block}
.info .qr{margin-top:18px; display:flex; flex-direction:column; align-items:flex-start; gap:8px}
.info .qr img{width:128px; height:128px; border:1px solid var(--line); border-radius:12px; display:block; background:#fff}
.info .qr-cap{font-size:12.5px; color:var(--muted)}
.toast{position:fixed; left:50%; bottom:40px; transform:translateX(-50%) translateY(20px); background:var(--navy); color:#fff; padding:14px 26px; border-radius:10px; opacity:0; pointer-events:none; transition:.3s; z-index:99; font-size:14.5px}
.toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
/* Footer */
.footer{background:var(--navy); color:#bcd2ef; padding:46px 0 30px; font-size:13.5px}
.footer .cols{display:grid; grid-template-columns:2fr 1fr 1fr; gap:30px}
.footer h5{color:#fff; font-size:15px; margin:0 0 14px}
.footer a{color:#bcd2ef; display:block; margin:7px 0; transition:.2s}
.footer a:hover{color:#fff}
.footer .copy{border-top:1px solid rgba(255,255,255,.12); margin-top:30px; padding-top:18px; color:#8fa9d4; font-size:12.5px; line-height:1.7}
.footer .copy a{display:inline; margin:0; color:#9fbbe4; text-decoration:underline}
.footer .copy a:hover{color:#fff}
.footer .copy .beian-sep{margin:0 8px; color:#5872a0}
.footer .copy .beian-icon{width:14px; height:14px; vertical-align:-2px; margin-right:4px; display:inline}
.footer .comp{border-left:3px solid var(--blue); padding-left:14px; color:#cfe0f7}
/* Responsive */
@media(max-width:980px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .usp-grid{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .clients{grid-template-columns:1fr}
  .contact-wrap{grid-template-columns:1fr}
  .footer .cols{grid-template-columns:1fr}
  .form-embed iframe{height:560px}
}
@media(max-width:680px){
  .nav-links{display:none; position:absolute; top:76px; left:0; right:0; background:#fff; flex-direction:column; padding:18px 22px; gap:14px; border-bottom:1px solid var(--line); box-shadow:0 10px 24px rgba(0,0,0,.06)}
  .nav-links.open{display:flex}
  .menu-toggle{display:block}
  .brand{gap:10px}
  .logo-wrap{width:40px; height:40px}
  .brand-name{font-size:18px}
  .brand-slogan{font-size:11px}
  .hero h1{font-size:30px}
  .grid,.usp-grid,.steps{grid-template-columns:1fr}
  section{padding:50px 0}
  .case{padding:26px}
}
/* FAQ */
.faq-list{max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:12px}
.faq-list details{border:1px solid var(--line); border-radius:12px; background:var(--card); padding:4px 18px; transition:.2s}
.faq-list details[open]{border-color:var(--blue); box-shadow:0 6px 18px rgba(37,99,235,.08)}
.faq-list summary{cursor:pointer; font-weight:600; color:var(--navy); padding:14px 0; list-style:none; position:relative; padding-right:28px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:20px; color:var(--blue); font-weight:700}
.faq-list details[open] summary::after{content:"\2212"}
.faq-list details p{color:var(--muted); font-size:14.5px; line-height:1.8; padding:0 0 16px}
