:root { --container:1360px; }
body { overflow-x:hidden; color:#333; background:#fff; font:14px/1.55 "Microsoft YaHei", "PingFang SC", Arial, sans-serif; }
body.mobile-search-active { overflow:hidden; }
body.mobile-menu-active { overflow:hidden; }
html.mobile-menu-active, body.mobile-menu-active { overflow:hidden; overscroll-behavior:none; }
.container { width:min(var(--container), calc(100% - 40px)); margin:0 auto; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0, 0, 0, 0); }

/* 头部和主导航 */
.site-header { position:relative; z-index:20; background:#fff; }
.header-main { height:164px; display:flex; align-items:center; justify-content:space-between; }
.logo { width:411px; }
.header-tools { display:flex; align-items:center; gap:31px; }
.utility-links { margin:0; color:#333; font-size:16px; white-space:nowrap; }
.utility-links a { transition:color .2s; }
.utility-links a:hover, .utility-links a:focus-visible { color:#1b6cc8; }
.utility-links i { display:inline-block; height:16px; margin:0 14px; border-left:1px solid #d8d8d8; vertical-align:-2px; }
.footer-links i { display:inline-block; height:13px; margin:0 10px; border-left:1px solid #aaa; vertical-align:middle; }
.search { display:flex; align-items:center; width:366px; height:56px; border:1px solid #e4e4e4; }
.search input { width:100%; min-width:0; padding:0 30px; border:0; outline:0; color:#333; font-size:14px; }
.search input::placeholder { color:#adadad; opacity:1; }
.search button { width:78px; height:100%; padding:0; border:0; background:transparent; }
.search img { width:22px; margin:auto; }
.main-nav { height:56px; color:#fff; background:#1b6cc8; }
/* 一级栏目作为一组居中；新增栏目时，两侧留白会同步平衡。 */
.nav-list { display:flex; width:1360px; height:100%; padding-left:0; align-items:stretch; justify-content:center; }
.nav-list > a, .nav-item > a { display:flex; height:100%; align-items:center; justify-content:center; padding:0; color:#fff; font-size:16px; white-space:nowrap; transition:background .2s; }
.nav-list > a { flex:0 0 125px; width:125px; }
.nav-list > a:first-child { flex:0 0 87px; width:87px; }
.nav-item { position:relative; display:flex; flex:0 0 125px; width:125px; height:100%; }
.nav-item > a { width:100%; }
.nav-list > a:hover, .nav-list > a.active, .nav-item > a:hover { background:#d82114; }
.sub-toggle { display:none; }
.sub-nav { position:absolute; top:100%; left:50%; z-index:5; display:none; width:max-content; min-width:160px; padding:6px 0; border-top:2px solid #d82114; background:#1762b3; box-shadow:0 12px 24px rgba(0,47,105,.28); transform:translateX(-50%); }
.sub-nav a { display:flex; height:42px; align-items:center; justify-content:center; padding:0 24px; border-bottom:1px solid rgba(255,255,255,.14); color:#fff; font-size:16px; white-space:nowrap; }
.sub-nav a:last-child { border-bottom:0; }
.sub-nav a:hover { background:#d82114; }
.menu-toggle, .mobile-actions, .mobile-search-toggle { display:none; }

/* 页脚 */
.site-footer { color:#fff; background:#1b6cc8; }
.footer-links { height:74px; border-bottom:1px solid rgba(255,255,255,.1); background:#1b6cc8; }
.footer-links .container { display:flex; height:100%; align-items:center; justify-content:center; font-size:16px; }
.footer-links a { color:#fff; opacity:1; transition:opacity .2s; }
.footer-links a:hover, .footer-links a:focus-visible { opacity:.76; }
.footer-links i { height:17px; margin:0 14px; border-left-color:rgba(255,255,255,.52); }
.footer-content { display:grid; grid-template-columns:268px 594px 498px; min-height:343px; gap:0; padding:55px 0 61px; }
.footer-content section + section { border-left:1px solid rgba(255,255,255,.25); }
.footer-content > section:nth-child(2) { padding-left:92px; }
.footer-content > section:nth-child(3) { padding-left:98px; }
.footer-content h2 { position:relative; z-index:0; width:max-content; margin:0 0 27px; padding:0 8px; color:#fff; font-size:26px; font-weight:400; line-height:37px; }
.footer-content > section:nth-child(2) h2 { margin-bottom:34px; }
.footer-content > section:nth-child(3) h2 { margin-bottom:22px; padding-left:2px; }
.footer-content h2::before { position:absolute; z-index:-1; bottom:2px; left:0; width:100%; height:10px; border-radius:10px; content:""; background:#5497e2; }
.footer-link-grid { display:grid; grid-template-columns:244px 1fr; gap:13px 0; color:#fff; font-size:14px; line-height:17px; }
.footer-link-grid a { opacity:1; transition:opacity .2s; }
.footer-link-grid a:hover, .footer-link-grid a:focus-visible { opacity:.76; }
.footer-link-grid a:nth-child(5), .footer-link-grid a:nth-child(6) { margin-top:40px; }
.record { color:#fff; font-size:14px; line-height:2.05; }
.record a { opacity:1; transition:opacity .2s; }
.record a:hover, .record a:focus-visible { opacity:.76; }
.record p { margin:0; }
.record p + p { margin-top:25px; }
.qrcode img { width:160px; padding:0; background:transparent; }
.copyright { height:50px; color:rgba(255,255,255,.8); background:#243979; font-size:12px; line-height:50px; }
.copyright .container { height:100%; text-align:right; }
.copyright a { display:inline-block; color:inherit; transition:opacity .2s; }
.copyright a:hover, .copyright a:focus-visible { opacity:.76; }
.back-top { position:fixed; right:25px; bottom:25px; z-index:30; display:grid; width:43px; height:43px; padding:0; border:0; border-radius:50%; place-items:center; color:#fff; background:#d82114; opacity:0; visibility:hidden; transform:translateY(12px); transition:opacity .2s, visibility .2s, transform .2s; }
.back-top span { width:12px; height:12px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(225deg) translate(-2px, -2px); }
.back-top:focus-visible { outline:2px solid #fff; outline-offset:3px; }
.back-top.show { opacity:1; visibility:visible; transform:none; }

/* 中等屏只压缩右侧工具区，Logo 保持设计稿的 411px 宽度。 */
@media (min-width:801px) and (max-width:1359px) {
  .header-tools { gap:clamp(12px, 2.2794118vw, 31px); }
  .utility-links { font-size:clamp(12px, 1.1764706vw, 16px); }
  .utility-links i { height:clamp(12px, 1.1764706vw, 16px); margin:0 clamp(10px, 1.0294118vw, 14px); }
  .search { width:clamp(200px, 26.9117647vw, 366px); }
  .search input { padding-left:clamp(18px, 2.2058824vw, 30px); padding-right:clamp(18px, 2.2058824vw, 30px); }
  .search button { width:clamp(54px, 5.7352941vw, 78px); }
}

@media (min-width:801px) and (max-width:1360px) {
  .nav-list { width:100%; padding-left:0; }
  .nav-list > a, .nav-item { flex:1 1 0; width:auto; min-width:0; }
  .nav-list > a, .nav-item > a { font-size:clamp(11px, 1.1764706vw, 16px); }
}

@media (max-width:1360px) and (min-width:801px) { .footer-content { grid-template-columns:.72fr 1.45fr 1.7fr; } .footer-content > section:nth-child(2), .footer-content > section:nth-child(3) { padding-left:clamp(30px, 6.7647059vw, 92px); } .footer-link-grid { grid-template-columns:1fr 1fr; } }
@media (min-width:801px) and (max-width:1050px) {
  .footer-content { grid-template-columns:220px minmax(0, 1fr); min-height:0; padding:48px 0; }
  .footer-content > section:nth-child(2) { padding-left:50px; }
  .footer-content > section:nth-child(3) { grid-column:1 / -1; margin-top:36px; padding:30px 0 0; border-top:1px solid rgba(255,255,255,.25); border-left:0; }
  .footer-content > section:nth-child(3) h2 { margin-bottom:18px; padding-left:8px; }
  .footer-link-grid { grid-template-columns:1fr 1fr; gap:13px 24px; }
  .footer-link-grid a:nth-child(5), .footer-link-grid a:nth-child(6) { margin-top:24px; }
}
@media (max-width:800px) {
  .container { width:min(100% - 32px, 600px); }
  .header-main { position:relative; height:80px; } .logo { width:245px; }
  .mobile-actions { display:flex; align-items:center; gap:6px; }
  .mobile-search-toggle, .menu-toggle { position:relative; display:grid; width:46px; height:46px; padding:0; border:0; border-radius:4px; place-items:center; color:#fff; background:#1b6cc8; transition:background .2s; }
  .mobile-search-toggle img { width:22px; height:22px; filter:brightness(0) invert(1); }
  .header-tools { position:fixed; z-index:100; inset:0; display:flex; align-items:center; padding:16px; visibility:hidden; background:rgba(255,255,255,.98); opacity:0; pointer-events:none; transition:opacity .24s ease, visibility .24s ease; }
  .header-tools.mobile-search-open { visibility:visible; opacity:1; pointer-events:auto; }
  .header-tools .utility-links { display:none; }
  .header-tools .search { display:flex; width:100%; height:52px; box-shadow:0 8px 22px rgba(0,52,106,.1); transform:translateY(16px) scale(.98); transition:transform .3s cubic-bezier(.22, .61, .36, 1); }
  .header-tools.mobile-search-open .search { transform:none; }
  .header-tools .search input { padding:0 16px; font-size:14px; }
  .header-tools .search button { width:54px; }
  .header-tools .search img { width:19px; }
  .menu-toggle span { position:absolute; left:11px; width:24px; height:2px; background:currentColor; transition:transform .24s ease, opacity .18s ease; }
  .menu-toggle span:nth-child(1) { transform:translateY(-7px); } .menu-toggle span:nth-child(3) { transform:translateY(7px); }
  .menu-toggle.is-open { background:#d82114; }.menu-toggle.is-open span:nth-child(1) { transform:rotate(45deg); } .menu-toggle.is-open span:nth-child(2) { opacity:0; } .menu-toggle.is-open span:nth-child(3) { transform:rotate(-45deg); }
  .main-nav { position:absolute; top:80px; right:0; left:0; z-index:24; height:auto; max-height:0; overflow:hidden; transition:max-height .35s; } .main-nav.open { max-height:calc(100vh - 80px); overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .nav-list { display:block; height:auto; } .nav-list > a, .nav-list > a:first-child, .nav-item { width:100%; min-height:52px; height:auto; flex:none; border-bottom:1px solid rgba(255,255,255,.13); }
  .nav-list > a, .nav-item > a { height:52px; justify-content:flex-start; padding-left:20px; font-size:16px; }
  .nav-list > a.active { background:transparent; }
  .nav-item { display:grid; grid-template-columns:1fr 52px; align-items:start; }.nav-item > a { grid-column:1; }
  .sub-toggle { position:relative; display:block; grid-column:2; grid-row:1; width:52px; height:52px; border:0; border-left:1px solid rgba(255,255,255,.13); background:transparent; }
  .sub-toggle::before, .sub-toggle::after { position:absolute; top:25px; left:18px; width:16px; height:2px; content:""; background:#fff; transition:.2s; }.sub-toggle::after { transform:rotate(90deg); }.nav-item.expanded .sub-toggle::after { transform:rotate(0); }
  .sub-nav { position:static; display:block; grid-column:1 / -1; grid-row:2; width:100%; min-width:0; max-height:0; padding:0; overflow:hidden; border-top:0; background:rgba(0,75,145,.4); box-shadow:none; opacity:1; visibility:visible; pointer-events:auto; transform:none; transition:max-height .3s; }.nav-item:hover .sub-nav, .nav-item:focus-within .sub-nav { transform:none; }.nav-item.expanded .sub-nav { max-height:220px; }
  .sub-nav a { height:44px; justify-content:flex-start; padding-left:40px; border-top:1px solid rgba(255,255,255,.11); font-size:15px; }
  .footer-links { height:55px; }.footer-content { grid-template-columns:1fr; min-height:0; gap:30px; padding:35px 0; text-align:center; }.footer-content section + section { padding:28px 0 0; border-top:1px solid rgba(255,255,255,.25); border-left:0; }.footer-content > section:nth-child(2), .footer-content > section:nth-child(3) { padding-left:0; }.footer-content h2, .footer-content > section:nth-child(2) h2, .footer-content > section:nth-child(3) h2 { margin-right:auto; margin-bottom:18px; margin-left:auto; padding-left:8px; font-size:22px; line-height:1.35; }.footer-link-grid { grid-template-columns:1fr 1fr; font-size:14px; line-height:1.4; text-align:center; }.footer-link-grid a:nth-child(5), .footer-link-grid a:nth-child(6) { margin-top:0; }.record { font-size:14px; }.qrcode { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; }.qrcode h2 { margin-bottom:0; }.qrcode img { width:110px; }.copyright .container { text-align:center; }.back-top { right:16px; bottom:16px; }
}
@supports (height:100dvh) { @media (max-width:800px) { .main-nav.open { max-height:calc(100dvh - 80px); } } }
@media (max-width:390px) { .logo { width:215px; } }
@media (max-width:340px) { .logo { width:180px; }.mobile-search-toggle, .menu-toggle { width:40px; height:40px; }.mobile-actions { gap:5px; }.mobile-search-toggle img { width:19px; height:19px; }.menu-toggle span { left:9px; width:22px; } }
