:root{--bg:#f7f9fb;--sf:#fff;--tx:#10202e;--mu:#58697a;--br:#00539b;--dp:#002b52;--gr:#7ab51d;--tl:#17908c;--ln:#d9e2ea;--ac:#00539b;--hd:#fff;--ib:#eaf2f9;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0c141c;--sf:#14202b;--tx:#e8eef4;--mu:#9bacbb;--ln:#26364a;--ac:#6db3f2;--ib:#182838;--dp:#001d38;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#0c141c;--sf:#14202b;--tx:#e8eef4;--mu:#9bacbb;--ln:#26364a;--ac:#6db3f2;--ib:#182838;--dp:#001d38;color-scheme:dark}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:#fff;z-index:30}
img{max-width:100%;display:block}a{color:var(--ac);text-decoration:none}
:focus-visible{outline:3px solid var(--gr);outline-offset:2px}
.w{max-width:1120px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-weight:800;letter-spacing:-.01em;line-height:1.25;margin:0}
/* signature: brochure stripe */
.stripe{height:8px;position:relative;background:var(--br)}
.stripe::before{content:"";position:absolute;inset:0 auto 0 0;width:28%;background:var(--gr);clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%)}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--hd)}
header .w{display:flex;align-items:center;justify-content:space-between;height:68px}
header img{height:42px;width:auto}
nav{display:flex;gap:6px}
nav a{padding:6px 18px;color:#10202e;font-weight:700;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
nav a.on{background:var(--br);color:#fff}nav a:not(.on):hover{background:#eaf2f9}
.bg{display:none;background:none;border:2px solid var(--br);color:var(--br);font-size:20px;padding:2px 11px;cursor:pointer}
@media(max-width:760px){.bg{display:block}header img{height:34px}nav{display:none;position:absolute;left:0;right:0;top:68px;background:#fff;flex-direction:column;padding:8px 20px 16px;border-bottom:4px solid var(--br)}nav.open{display:flex}nav a{clip-path:none;padding:10px 12px}}
/* hero */
.hero{background:var(--dp);color:#fff;position:relative;overflow:hidden}
.hero .bgart{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:right center}
.hero .w{position:relative;z-index:1;display:block;min-height:420px}
.hero .tx{padding:64px 0 76px;max-width:600px;min-height:420px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.hero .chip{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.06em;color:#b6f25a;border:1px solid rgba(182,242,90,.55);padding:3px 14px 3px 12px;margin-bottom:18px;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);animation:up .8s both}
.hero h1{font-size:clamp(32px,4.6vw,54px);line-height:1.18}
.hero h1 span{display:block;animation:up .8s .1s both}.hero h1 span+span{animation-delay:.25s;font-size:.46em;margin-top:12px;font-weight:700;color:#cfe5f8}
.hero h1 span+span::before{content:"";display:inline-block;width:28px;height:4px;background:var(--gr);margin-right:12px;vertical-align:middle;transform:translateY(-1px)}
.hero p{max-width:30em;color:#b8d3ea;margin:16px 0 26px;font-size:15.5px;line-height:1.8;animation:up .8s .4s both}
@keyframes up{from{opacity:0;transform:translateY(22px)}}
@media(max-width:820px){.hero .w,.hero .tx{min-height:0}.hero .tx{padding:44px 0 64px}.hero .bgart{opacity:.6}}
.btn{display:inline-block;padding:11px 30px;background:var(--gr);color:#0e2204;font-weight:800;border:0;cursor:pointer;font:inherit;font-weight:800;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%)}
.btn.o{background:none;color:#fff;box-shadow:inset 0 0 0 2px #fff;margin-left:6px}
/* facts */
.facts{display:grid;grid-template-columns:repeat(4,1fr);background:var(--sf);border-bottom:1px solid var(--ln)}
.facts div{padding:26px 24px;border-left:4px solid var(--gr)}
.facts b{display:block;font-size:30px;line-height:1.2;color:var(--ac)}.facts span{font-size:14px;color:var(--mu)}
@media(max-width:760px){.facts{grid-template-columns:1fr 1fr}.facts div{padding:16px}}
.sec{padding:64px 0}
.hd{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:32px;border-bottom:2px solid var(--ln);padding-bottom:14px;position:relative}
.hd::after{content:"";position:absolute;left:0;bottom:-2px;width:72px;height:2px;background:var(--gr)}
.hd h2{font-size:clamp(26px,3.4vw,36px)}.hd p{margin:0;color:var(--mu);font-size:14px;max-width:24em;text-align:right}
@media(max-width:760px){.hd{display:block}.hd p{text-align:left}}
/* services band */
.svc{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.svc div{background:var(--br);color:#fff;font-weight:800;font-size:19px;text-align:center;padding:30px 8px;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 100%,18px 100%);margin-right:-10px}
.svc div:nth-child(even){background:var(--dp)}.svc div:first-child{clip-path:polygon(0 0,calc(100% - 18px) 0,100% 100%,0 100%)}
.svc div:last-child{clip-path:polygon(18px 0,100% 0,100% 100%,0 100%);margin:0}
@media(max-width:760px){.svc{grid-template-columns:1fr 1fr;gap:8px}.svc div,.svc div:first-child,.svc div:last-child{clip-path:none;margin:0}}
.sn{color:var(--mu);margin:16px 0 0;font-size:14px}
/* model steps */
.mod{display:grid;grid-template-columns:1fr 1.7fr;gap:48px}
.mod .lead{position:sticky;top:90px;align-self:start}
.mod .lead h2{font-size:clamp(28px,3.6vw,40px);color:var(--ac)}.mod .lead p{color:var(--mu)}
.steps{margin:0;padding:0;list-style:none;position:relative}
.steps::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:3px;background:linear-gradient(var(--gr),var(--br))}
.steps li{position:relative;padding:0 0 30px 68px}
.steps li i{position:absolute;left:0;top:0;width:46px;height:46px;background:var(--br);color:#fff;display:grid;place-items:center;font:800 20px/1 inherit;font-style:normal;clip-path:polygon(25% 0,100% 0,75% 100%,0 100%)}
.steps h3{font-size:20px;margin-bottom:4px}.steps p{margin:0;color:var(--mu)}
@media(max-width:820px){.mod{grid-template-columns:1fr;gap:24px}.mod .lead{position:static}}
/* mosaic */
.mz{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:10px}
.mz figure{margin:0;position:relative;overflow:hidden;background:#111}
.mz figure:first-child{grid-column:span 2;grid-row:span 2}
.mz img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.mz figure:hover img{transform:scale(1.05)}
.mz figcaption{position:absolute;left:0;right:0;bottom:0;background:var(--br);color:#fff;font-weight:700;font-size:14px;padding:5px 12px}
@media(max-width:760px){.mz{grid-template-columns:1fr 1fr;grid-auto-rows:130px}}
/* cta */
.cta{background:var(--br);color:#fff;padding:44px 0;clip-path:polygon(0 24px,100% 0,100% 100%,0 100%);margin-top:20px}
.cta .w{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:20px}
.cta h2{font-size:26px}.cta p{margin:4px 0 0;color:#cfe5f8}
/* sub hero */
.sub{background:var(--dp);color:#fff;padding:44px 0 52px;clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),0 100%)}
.sub h1{font-size:clamp(30px,4.4vw,46px)}.sub p{margin:6px 0 0;color:#b8d3ea}
/* about */
.dl{display:grid;grid-template-columns:150px 1fr;margin:0;border-top:1px solid var(--ln)}
.dl dt,.dl dd{margin:0;padding:14px 0;border-bottom:1px solid var(--ln)}.dl dt{font-weight:800;color:var(--ac)}.dl dd{color:var(--tx)}
@media(max-width:600px){.dl{grid-template-columns:1fr}.dl dt{border:0;padding-bottom:0}}
.hw{display:grid;grid-template-columns:repeat(2,1fr);column-gap:40px;margin:0;padding:0;list-style:none}
.hw li{display:flex;gap:16px;padding:11px 0;border-bottom:1px solid var(--ln)}.hw b{flex:none;width:58px;color:var(--gr);font-size:17px}.hw span{color:var(--tx)}
@media(max-width:700px){.hw{grid-template-columns:1fr}}
.flow{display:flex;margin:0;padding:0;list-style:none}
.flow li{flex:1;background:var(--br);color:#fff;font-weight:700;text-align:center;padding:22px 20px;margin-right:-12px;clip-path:polygon(0 0,calc(100% - 20px) 0,100% 50%,calc(100% - 20px) 100%,0 100%,20px 50%)}
.flow li:nth-child(even){background:var(--dp)}.flow li:last-child{background:var(--gr);color:#0e2204;margin:0}
@media(max-width:760px){.flow{flex-direction:column;gap:6px}.flow li{margin:0;clip-path:none}}
.gal{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.gal figure{margin:0;grid-column:span 3;cursor:zoom-in;position:relative;background:var(--sf);border:1px solid var(--ln);overflow:hidden}
.gal figure:nth-child(n+3){grid-column:span 3}
.gal img{width:100%;aspect-ratio:3/2;object-fit:cover}
.gal figcaption{padding:10px 14px;font-weight:700;border-top:4px solid var(--gr)}
@media(max-width:700px){.gal figure,.gal figure:nth-child(n+3){grid-column:span 6}}
/* news */
.nl{display:grid;gap:0}
.nr{display:grid;grid-template-columns:260px 1fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--ln);align-items:center}
.nr img{width:100%;aspect-ratio:3/2;object-fit:cover;clip-path:polygon(0 0,100% 0,calc(100% - 22px) 100%,0 100%)}
.nr h3{font-size:21px;margin:4px 0 8px}.nr p{margin:0;color:var(--mu)}
.nr .k{display:inline-block;background:var(--ib);color:var(--ac);font-weight:800;font-size:13px;padding:1px 12px}
.nr:first-child{grid-template-columns:1.2fr 1fr}.nr:first-child h3{font-size:26px}
@media(max-width:760px){.nr,.nr:first-child{grid-template-columns:1fr;gap:12px}.nr img{clip-path:none}}
/* contact */
.ctw{position:relative;z-index:1;margin-top:-26px;padding-bottom:72px}
.ct{display:grid;grid-template-columns:5fr 6fr;align-items:stretch}
.ct .l{position:relative;z-index:1;background:var(--dp);color:#fff;padding:44px 64px 44px 44px;clip-path:polygon(0 0,100% 0,calc(100% - 32px) 100%,0 100%);overflow:hidden}
.ct .l::before{content:"";position:absolute;inset:0;background:radial-gradient(rgba(255,255,255,.13) 1.4px,transparent 1.6px) 0 0/16px 16px;-webkit-mask:linear-gradient(160deg,#000,transparent 55%);mask:linear-gradient(160deg,#000,transparent 55%);pointer-events:none}
.ct .l>*{position:relative}
.ct .l h2{font-size:26px;margin-bottom:6px}
.ct .l>p{margin:0 0 22px;color:#9cc4e6;font-size:14px}
.ci{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ci li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}
.ci li:first-child{border-top:0}
.ci svg{width:44px;height:44px;padding:11px;background:rgba(255,255,255,.1);color:var(--gr);clip-path:polygon(22% 0,100% 0,78% 100%,0 100%)}
.ci small{display:block;color:#8fc3ef;font-size:13px;line-height:1.4}
.ci b{display:block;font-size:17px;line-height:1.5}.ci a{color:#fff}.ci a:hover{color:var(--gr)}
.ct .r{background:var(--sf);border:1px solid var(--ln);border-top:4px solid var(--gr);margin-left:-32px;padding:44px 44px 44px 76px}
.ct .r h2{font-size:26px;margin-bottom:4px}
.ct .r>p{margin:0 0 22px;color:var(--mu);font-size:14px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
form{display:grid;gap:16px}label{font-weight:700;font-size:14px;display:grid;gap:6px}
input,textarea{width:100%;padding:11px 12px;border:2px solid var(--ln);background:var(--bg);color:var(--tx);font:inherit;border-radius:0}
input:focus,textarea:focus{border-color:var(--br);outline:0;background:var(--sf)}textarea{min-height:130px;resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ok{display:none;border-left:4px solid var(--gr);background:var(--ib);padding:10px 14px;font-size:14px}
.ok.err{border-color:#d1432f}
@media(max-width:820px){.ctw{margin-top:-18px;padding-bottom:48px}.ct{grid-template-columns:1fr}.ct .l{padding:32px 24px 56px;clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),0 100%)}.ct .r{margin:-24px 0 0;padding:44px 22px 28px}.row2{grid-template-columns:1fr}}
footer{background:var(--dp);color:#b8d3ea;font-size:14px;padding:36px 0 22px}
footer .w{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer img{height:38px;width:38px;border-radius:50%;background:#fff;margin-bottom:8px}footer a{color:#fff}footer b{color:#fff}
.cp{text-align:center;margin-top:20px;opacity:.65;font-size:13px}
#lb{position:fixed;inset:0;background:rgba(0,10,20,.88);z-index:50;display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
#lb.on{display:flex}#lb img{max-height:100%;max-width:100%;object-fit:contain}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* news v2 */
.nl .nr,.nl .nr:first-child{grid-template-columns:132px 1fr;gap:32px;align-items:start}
.nl .nr:first-child h3{font-size:21px}
.nr .dt{display:grid;place-content:center;text-align:center;background:var(--dp);color:#fff;aspect-ratio:1/1;clip-path:polygon(0 0,100% 0,calc(100% - 18px) 100%,0 100%);transition:background .2s}
.nr:hover .dt{background:var(--br)}
.nr .dt b{font-size:26px;line-height:1.1;letter-spacing:.02em}.nr .dt span{font-size:14px;color:#9cc4e6;margin-top:4px}
.nr .k2{background:none;box-shadow:inset 0 0 0 1px var(--ac);padding:0 11px}
.nr h3{line-height:1.5}.nr h3 a{color:var(--tx)}.nr h3 a:hover{color:var(--ac)}
.nr .more{display:inline-block;margin-top:12px;font-weight:800;font-size:14px}.nr .more::after{content:" →"}
@media(max-width:760px){.nl .nr,.nl .nr:first-child{grid-template-columns:1fr;gap:14px}.nr .dt{aspect-ratio:auto;grid-auto-flow:column;gap:10px;place-content:start;text-align:left;padding:8px 22px 8px 14px;width:max-content;clip-path:polygon(0 0,100% 0,calc(100% - 12px) 100%,0 100%)}.nr .dt span{margin:0;align-self:end}}
/* article */
.art-sec{padding-top:28px}
.crumb{margin:0 0 16px;font-size:14px;color:var(--mu)}.crumb i{font-style:normal;margin:0 8px;opacity:.6}
.art{max-width:880px;margin:0 auto;background:var(--sf);border:1px solid var(--ln);border-top:4px solid var(--gr);padding:44px 56px 40px}
.art>h1{font-size:clamp(20px,2.6vw,28px);line-height:1.55;text-align:center}
.meta{display:flex;gap:8px 28px;justify-content:center;flex-wrap:wrap;color:var(--mu);font-size:14px;border-bottom:1px solid var(--ln);padding:16px 0 20px;margin:18px 0 28px}
.ab p{margin:0 0 12px;text-indent:2em}.ab p.sign{text-indent:0;text-align:right;margin-top:28px;line-height:1.9}
.ab h2{font-size:19px;color:var(--ac);margin:30px 0 12px;padding-left:12px;border-left:4px solid var(--gr);line-height:1.5}
.kv{display:grid;grid-template-columns:10em 1fr;margin:12px 0 16px;border-top:1px solid var(--ln)}
.kv dt,.kv dd{margin:0;padding:11px 0;border-bottom:1px solid var(--ln)}.kv dt{font-weight:800;color:var(--ac);padding-right:12px}
.ol{margin:0 0 14px;padding-left:2.4em}.ol li{margin:4px 0}
.att{margin-top:36px;background:var(--ib);padding:20px 24px}
.att h2{font-size:17px;margin-bottom:10px}
.att ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.att a{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;padding:10px 12px;background:var(--sf);border:1px solid var(--ln);color:var(--tx)}
.att a:hover{border-color:var(--br)}.att svg{width:28px;height:28px;color:var(--br)}
.att b{display:block;line-height:1.5}.att small{color:var(--mu)}
.acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.btn.o2{background:none;color:var(--ac);box-shadow:inset 0 0 0 2px var(--ac)}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px;padding-top:20px;border-top:1px solid var(--ln);font-size:14px}
.pn a,.pn span{display:block;color:var(--tx);line-height:1.6}.pn span{color:var(--mu)}.pn a:hover{color:var(--ac)}
.pn small{display:block;color:var(--mu);font-weight:800;margin-bottom:2px}
.pn>:last-child{text-align:right}
@media(max-width:760px){.art{padding:26px 18px 28px}.kv{grid-template-columns:1fr}.kv dt{border:0;padding-bottom:0}.pn{grid-template-columns:1fr}.pn>:last-child{text-align:left}}
@media print{header,footer,.sub,.crumb,.acts,.pn{display:none!important}.art{border:0;padding:0}}
