@font-face{font-family:"Heros Cn";src:url(fonts/texgyreheroscn-bold.woff) format("woff");font-weight:700;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/Inter-Regular.woff) format("woff");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/Inter-SemiBold.woff) format("woff");font-weight:600;font-display:swap}

:root{
  --sign:#0B4A8F;
  --sign-deep:#083A70;
  --ink:#0A1B33;
  --muted:#4A5A70;
  --paper:#F4F6F8;
  --white:#FFFFFF;
  --rule:#D5DCE4;
  --signal:#F5B800;
  --route-red:#C8102E;
  --display:"Heros Cn","Arial Narrow","Helvetica Neue Condensed",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1180px;
  --gutter:clamp(16px,4vw,40px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--body);text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:var(--sign)}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:99}
.skip:focus{left:8px}

h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.02;letter-spacing:.005em;margin:0}
h1{font-size:clamp(46px,7.6vw,96px)}
h2{font-size:clamp(34px,4.6vw,56px)}
h3{font-size:clamp(24px,2.4vw,30px);line-height:1.1}
p{margin:0 0 1em}
.lead{font-size:clamp(18px,1.6vw,21px);color:var(--muted);max-width:36em}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(244,246,248,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;gap:24px;height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand svg{width:44px;height:44px}
.brand span{font-family:var(--display);font-size:24px;line-height:.95;letter-spacing:.02em}
.brand span b{display:block;color:var(--sign);font-weight:700}
.nav{display:flex;gap:26px;align-items:center}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:15px}
.nav a:hover{color:var(--sign)}
.lang{font-size:14px;font-weight:600;color:var(--muted);text-decoration:none;border:1px solid var(--rule);padding:6px 10px;border-radius:6px}
.lang:hover{border-color:var(--ink);color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;font:600 16px/1 var(--body);text-decoration:none;padding:16px 22px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.btn-primary{background:var(--sign);color:#fff}
.btn-primary:hover{background:var(--sign-deep)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.top .btn{padding:11px 16px;font-size:15px}
.menu-toggle{display:none;background:none;border:1px solid var(--rule);border-radius:6px;padding:8px 10px;font:600 14px var(--body);color:var(--ink)}

/* hero */
.hero{padding:clamp(48px,8vw,104px) 0 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{max-width:9.5em}
.hero .lead{margin:28px 0 36px}
.actions{display:flex;flex-wrap:wrap;gap:14px}

.sign{background:var(--sign);color:#fff;border-radius:14px;padding:10px;box-shadow:0 1px 0 rgba(10,27,51,.15),0 24px 48px -24px rgba(8,58,112,.55)}
.sign-inner{border:3px solid #fff;border-radius:9px;padding:22px 24px 10px}
.sign-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:2px solid rgba(255,255,255,.35);margin-bottom:6px}
.shield{background:var(--route-red);color:#fff;font:700 22px/1 var(--display);padding:6px 9px 5px;border-radius:5px;border:2px solid #fff}
.sign-head strong{font:700 30px/1 var(--display);letter-spacing:.01em}
.sign ul{list-style:none;margin:0;padding:0}
.sign li{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.2)}
.sign li:last-child{border-bottom:0}
.sign li a{color:#fff;text-decoration:none;display:contents}
.sign .dest{font:700 clamp(24px,2.3vw,30px)/1.05 var(--display)}
.sign .dest small{display:block;font:400 14px/1.4 var(--body);opacity:.8;margin-top:4px}
.sign .arrow{width:34px;height:34px}
.sign .soon{font:600 12px/1 var(--body);background:var(--signal);color:var(--ink);padding:6px 8px;border-radius:4px}

.road{margin-top:clamp(48px,7vw,88px);height:72px;background:#2B3442;position:relative}
.road::before,.road::after{content:"";position:absolute;left:0;right:0;height:3px;background:#E9EDF2}
.road::before{top:8px}.road::after{bottom:8px}
.road i{position:absolute;top:50%;left:0;width:200%;height:5px;margin-top:-2.5px;background:repeating-linear-gradient(90deg,#fff 0 56px,transparent 56px 112px);animation:drive 14s linear infinite}
@keyframes drive{to{transform:translateX(-112px)}}

/* sections */
section{scroll-margin-top:80px}
.band{padding:clamp(72px,9vw,120px) 0}
.band-white{background:var(--white)}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:clamp(40px,5vw,64px)}
.section-head p{color:var(--muted);margin:0;max-width:32em}

.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:3px solid var(--ink)}
.service{padding:32px 32px 8px 0}
.service + .service{padding-left:32px;border-left:1px solid var(--rule)}
.service svg{width:48px;height:48px;margin-bottom:22px;color:var(--sign)}
.service h3{margin-bottom:14px}
.service p{color:var(--muted)}
.service .tag{display:inline-block;font:600 12px/1 var(--body);background:var(--signal);color:var(--ink);padding:6px 8px;border-radius:4px;margin-bottom:14px}
.service ul{margin:0 0 1em;padding-left:18px;color:var(--muted)}

.proof{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.proof div{padding:32px 40px 32px 0;border-top:1px solid var(--rule)}
.proof div:nth-child(even){padding-left:40px;border-left:1px solid var(--rule)}
.proof h3{margin-bottom:10px}
.proof p{color:var(--muted);margin:0;max-width:30em}

/* process */
.dark{background:var(--ink);color:#fff}
.dark .section-head p{color:#B7C3D3}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;top:21px;left:0;right:0;height:3px;background:repeating-linear-gradient(90deg,var(--signal) 0 22px,transparent 22px 36px)}
.steps li{counter-increment:s;padding-right:28px;position:relative}
.steps li::before{content:counter(s);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--ink);border:3px solid var(--signal);font:700 22px/1 var(--display);color:#fff;margin-bottom:22px;position:relative}
.steps h3{margin-bottom:10px}
.steps p{color:#B7C3D3;margin:0}

/* contact */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,80px)}
.contact-info dl{margin:32px 0 0;display:grid;gap:18px}
.contact-info dt{font-weight:600;font-size:14px;color:var(--muted)}
.contact-info dd{margin:2px 0 0;font-size:18px}
.contact-info dd a{color:var(--ink);text-decoration-color:var(--rule);text-underline-offset:4px}
form{background:var(--white);border:1px solid var(--rule);border-radius:12px;padding:clamp(22px,3vw,36px);display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field{display:grid;gap:6px}
.field.full{grid-column:1/-1}
label{font-weight:600;font-size:15px}
label small{font-weight:400;color:var(--muted)}
input,select,textarea{font:400 16px/1.4 var(--body);color:var(--ink);background:var(--paper);border:1.5px solid var(--rule);border-radius:7px;padding:13px 14px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--sign);background:#fff;box-shadow:0 0 0 3px rgba(11,74,143,.15)}
textarea{min-height:120px;resize:vertical}
.hp{position:absolute;left:-9999px}
.consent{grid-column:1/-1;font-size:14px;color:var(--muted);margin:0}
form .btn{grid-column:1/-1;justify-self:start}
.notice{grid-column:1/-1;padding:14px 16px;border-radius:8px;font-weight:600;margin:0}
.notice.ok{background:#E6F4EA;color:#1E5631}
.notice.err{background:#FDECEA;color:#8A1C1C}

/* footer */
footer{background:var(--sign-deep);color:#D6E1EF;padding:56px 0 40px;font-size:15px}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px}
footer a{color:#fff}
footer .brand{color:#fff}
footer .brand span b{color:var(--signal)}
.foot p{margin:.2em 0}
.legal{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-wrap:wrap;gap:8px 24px;color:#9FB3CC;font-size:14px}

/* simple pages */
.page{padding:72px 0 96px}
.page .wrap{max-width:820px}
.page h1{font-size:clamp(40px,6vw,64px);margin-bottom:28px}
.page h2{font-size:28px;margin:36px 0 10px}

@media (max-width:980px){
  .hero-grid,.section-head,.contact-grid{grid-template-columns:1fr}
  .services{grid-template-columns:1fr}
  .service,.service + .service{padding:28px 0 4px;border-left:0;border-top:1px solid var(--rule)}
  .service:first-child{border-top:0}
  .steps{grid-template-columns:1fr 1fr;gap:40px 0}
  .steps::before{display:none}
}
@media (max-width:760px){
  .nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:16px var(--gutter) 24px;border-bottom:1px solid var(--rule);gap:18px}
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .top .btn{display:none}
  .proof{grid-template-columns:1fr}
  .proof div,.proof div:nth-child(even){padding:26px 0;border-left:0}
  .steps{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr}
  .road{height:56px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .road i{animation:none}
}
