:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#142139;background:#f5f7fa;line-height:1.7}
*{box-sizing:border-box}body{margin:0}a{color:#154c89;text-underline-offset:.24em}a:focus-visible{outline:3px solid #e15c4f;outline-offset:4px}header{background:#fff;border-bottom:1px solid #e1e7ee}nav,footer,main:not(.firm main):not(.about-page),.band,.hero-inner{width:min(1160px,calc(100% - 48px));margin:auto}nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:17px 0}nav div,.actions{display:flex;align-items:center;gap:clamp(14px,3vw,32px);flex-wrap:wrap}nav a,.brand{text-decoration:none;font-weight:700}nav a{color:#162a47}.brand{display:inline-flex;align-items:center;gap:10px;line-height:1.15;font-size:19px}.brand small{display:block;font-size:8px;letter-spacing:.13em;margin-top:5px}.symbol{display:grid;place-items:center;width:39px;height:39px;background:#102d50;color:#fff;border-top:3px solid #d34c47}.nav-contact{border:1px solid #d9e2ed;padding:7px 13px}
.hero{background:radial-gradient(ellipse at 90% 10%,#204f82,transparent 57%),linear-gradient(116deg,#091b32,#122f51);color:white;padding:clamp(50px,8vw,105px) 0}.hero-inner{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:clamp(28px,7vw,92px)}.eyebrow{color:#b6d2ed;margin:0 0 20px;font-size:14px;letter-spacing:.13em}.hero h1{font-size:clamp(42px,7vw,88px);line-height:1.1;letter-spacing:-.045em;margin:0}.hero h1 span{color:#ff7469}.intro{max-width:520px;color:#d4e3f4;font-size:17px;margin:26px 0}.button{display:inline-block;background:#c34340;color:white;font-weight:700;text-decoration:none;padding:11px 20px;border-radius:4px}.button:hover{background:#a63130}.sub-action{color:#fff;font-weight:700}.roadmap{border:1px solid #607e9d;background:#112d4bd9;padding:24px 28px}.roadmap>p{color:#bdd6ef;margin:0}.roadmap ol{padding:0;list-style:none;margin:12px 0 0}.roadmap li{display:flex;gap:16px;align-items:center;border-top:1px solid #53708e;padding:14px 0}.roadmap li span{font:700 16px system-ui;color:#ff9b92}.roadmap strong,.roadmap small{display:block}.roadmap strong{font-size:21px}.roadmap small{color:#c4d9f0}
.band{padding:56px 0}.section-title{margin-bottom:24px}.section-title p,.card p,.method p,.knowledge p{color:#4b5d74;margin:.45em 0}.band h2{margin:0;font-size:clamp(26px,4vw,40px);line-height:1.2}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(245px,100%),1fr));gap:16px}.card{display:block;background:#fff;border:1px solid #dce5ef;border-top:3px solid #1b4975;color:inherit;padding:23px;text-decoration:none}.card:hover{border-color:#185999}.card h2,.card h3{margin:8px 0;font-size:23px}.card span{display:inline-block;color:#174e88;font-weight:700;margin-top:12px}.card .tag{color:#a63130;margin:0;font-size:13px}.method,.knowledge,.contact{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid #d8e1ec}.method ul{padding:0;display:flex;list-style:none;gap:8px;flex-wrap:wrap}.method li{background:#e8eff8;padding:8px 14px;font-weight:700}.contact{background:#102b4b;color:white;border:0;padding:32px;margin-bottom:38px}.contact p{color:#cad9ec;margin-bottom:0}footer{padding:22px 0;border-top:1px solid #dce5ef;color:#4b5d74;font-size:14px}
main:not(.firm main):not(.about-page){padding:42px 0 64px}main:not(.firm main):not(.about-page) h1{font-size:clamp(33px,6vw,58px);line-height:1.18;margin:.45em 0}article{max-width:780px}article section{margin:30px 0}.answer{background:#e8eff8;border-left:4px solid #1b4975;padding:18px}.demo{font-size:13px;color:#52677d}
@media(max-width:720px){nav,footer,main:not(.firm main):not(.about-page),.band,.hero-inner{width:calc(100% - 32px)}.hero-inner{grid-template-columns:1fr}.band{padding:36px 0}.contact{padding:24px}nav div{gap:12px;font-size:13px}}

.home .hero {min-height: min(680px, 90svh);display:grid;align-items:center}
.home .hero-image {inset:-190px -11vw;opacity:.9;animation:drift 14s ease-in-out infinite alternate}
.home .hero h1 {animation:enter .7s ease-out both}
.home .hero .intro,.home .hero .actions {animation:enter .8s .12s ease-out both}
.signal {position:absolute;z-index:-1;inset:-100px -11vw;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 79px,#6ac8ff16 79px 80px),repeating-linear-gradient(0deg,transparent 0 79px,#6ac8ff16 79px 80px);mask-image:linear-gradient(90deg,transparent 35%,#000)}
.signal::after {content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 42%,#61c4ff30 50%,transparent 58%);animation:sweep 8s ease-in-out infinite}
.home .services .card {transition:background .25s,transform .25s}
.home .services .card:hover {transform:translateY(-4px)}
.method-visual {margin:24px 0 32px;border:1px solid #ccd9e8;background:white}
.method-visual img {width:100%;height:auto;display:block}
.method-visual figcaption {padding:9px 14px;color:#405770;font-size:.86rem}
@keyframes drift {to{transform:scale(1.09) translateX(-2%)}}
@keyframes sweep {0%,15%{transform:translateX(-45%);opacity:0}40%,65%{opacity:1}90%,100%{transform:translateX(55%);opacity:0}}
@keyframes enter {from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.service-menu {position:relative}
.service-menu summary {cursor:pointer;font-weight:700;color:#162a47}
nav .menu-panel {position:absolute;top:calc(100% + 8px);left:0;z-index:10;display:grid;gap:0;min-width:225px;padding:6px;background:white;border:1px solid #d9e2ed;box-shadow:0 12px 28px #14213920}
nav .menu-panel a {display:block;padding:8px 12px}
nav .menu-panel a:hover {background:#e8eff8}
@media(max-width:520px){nav .menu-panel{min-width:190px;left:auto;right:0}}

.firm{background:white;color:#172638}.firm main{width:auto;padding:0}.firm header{background:white}.firm nav{width:min(1280px,calc(100% - 64px));min-height:80px}.firm .brand{font-size:23px}.firm nav div{gap:clamp(12px,2.5vw,32px)}
.firm-wrap{width:min(1200px,calc(100% - 64px));margin:auto}.firm-hero{position:relative;isolation:isolate;overflow:hidden;color:white;background:#102537;padding:clamp(76px,10vw,154px) 0}.firm-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#091725f5 0%,#091725b8 42%,#09172526 100%),url("assets/architecture.png") center 52%/cover no-repeat;animation:firm-pan 16s ease-out both}.firm-hero h1{font-size:clamp(50px,7.3vw,106px);line-height:1.08;letter-spacing:-.05em;margin:.24em 0}.firm-hero p{color:#e4eaf1}.firm-intro{max-width:31em;font-size:18px;margin-bottom:32px}.firm-button{display:inline-flex;gap:36px;align-items:center;padding:13px 20px;background:#b12c34;color:white;font-weight:bold;text-decoration:none}.firm-button:hover{background:#8e242b}.firm-section{padding-block:clamp(56px,7vw,104px)}.firm h2{font-size:clamp(30px,4vw,52px);line-height:1.17;margin:0 0 12px}.firm-heading{margin-bottom:30px}.firm-heading p,.firm-services p,.firm-expert p,.firm-resources p{margin:.5em 0;color:#46596b}.firm-services{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid #d7dfe7}.firm-services>a{display:flex;flex-direction:column;align-items:flex-start;padding:25px 26px;border-right:1px solid #d7dfe7;color:inherit;text-decoration:none;transition:background .2s}.firm-services>a:last-child{border-right:0}.firm-services>a:hover{background:#f2f5f8}.firm-services small,.firm-label{font-weight:bold;color:#a12530!important}.firm-services h3{font-size:clamp(20px,2.2vw,29px);margin:8px 0 0}.firm-services span{padding-top:16px;margin-top:auto;color:#a12530;font-weight:bold}.firm-expert{background:#eef2f5;padding:clamp(36px,5vw,70px) 0}.firm-expert-grid{display:grid;grid-template-columns:240px minmax(0,620px);gap:clamp(25px,7vw,100px);align-items:center}.firm .portrait{max-width:220px}.firm-links,.firm-resources{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.firm-links{font-weight:bold}.firm-resources{justify-content:space-between}.firm-contact{background:#102537;color:white;padding:42px 0}.firm-contact p,.firm-contact a{color:#fff}
@keyframes firm-pan{from{transform:scale(1.05)}to{transform:scale(1)}}
@media(max-width:720px){.firm nav,.firm-wrap{width:calc(100% - 36px)}.firm-hero h1{font-size:clamp(43px,10vw,66px)}.firm-services,.firm-expert-grid{grid-template-columns:1fr}.firm-services>a{border-right:0;border-bottom:1px solid #d7dfe7;padding-inline:4px}.firm-services>a:last-child{border-bottom:0}.firm .portrait{justify-self:start;max-width:160px}}
@media(prefers-reduced-motion:reduce){.firm-hero::before{animation:none}}

nav a[aria-current="page"]{color:#ae2933;text-decoration:underline;text-underline-offset:8px}

img.portrait{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center 28%}.site-footer{text-align:center}.site-footer p{margin:4px 0}

.phone-consult{gap:14px}.phone-consult span{white-space:nowrap;font-variant-numeric:tabular-nums}

.knowledge-reading{max-width:680px}.service-contact{border-top:1px solid #d7dfe7;padding-top:24px}.phone-consult{flex-wrap:wrap}

/* 品牌 logo：页头图形标 + 页脚完整标志（含书法字） */
.brand-logo{display:block;width:40px;height:28px;object-fit:contain;flex:none}
.firm .brand-logo{width:46px;height:32px}
.site-footer .footer-logo{display:block;width:88px;height:auto;margin:0 auto 12px;object-fit:contain}
@media(max-width:720px){.site-footer .footer-logo{width:72px}}
