:root{
  --ink:#101b26; --accent:#5b7388; --accent-soft:#ffb27a; --mist:#eef0f2; --paper:#fafbfb;
  --text:#25303a; --muted:#5e6a75; --seal:#f26a21; --line:#dadfe4;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{font-family:var(--sans);color:var(--text);background:var(--paper);line-height:1.8;font-size:16px}
img{display:block;max-width:100%}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:20;height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;color:#fff;transition:background .3s}
.site-header.solid{background:rgba(16,27,38,.96)}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:20px;letter-spacing:.12em}
.seal{display:grid;place-items:center;width:30px;height:30px;background:var(--seal);color:#101b26;font-size:17px;border-radius:2px;letter-spacing:0}
.nav{display:flex;gap:30px;font-size:15px}
.nav a{padding:6px 0;border-bottom:1px solid transparent;transition:border-color .2s}
.nav a:hover{border-color:var(--accent-soft)}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;padding:4px 14px;font:inherit;cursor:pointer}

/* hero */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;color:#fff;background:var(--ink);overflow:hidden}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,24,.82) 0%,rgba(9,16,24,.45) 50%,rgba(9,16,24,0) 80%)}
.hero-text{position:relative;z-index:1;max-width:1200px;width:100%;margin:0 auto;padding:0 32px}
.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(40px,6.4vw,84px);line-height:1.2;letter-spacing:.14em;animation:rise .9s ease both}
.hero p{margin:22px 0 40px;font-size:clamp(16px,1.6vw,20px);letter-spacing:.08em;color:#e3e8ed;max-width:30em;animation:rise .9s .15s ease both}
.hero-btns{display:flex;gap:18px;flex-wrap:wrap;animation:rise .9s .3s ease both}
.btn{display:inline-block;min-width:150px;padding:13px 32px;text-align:center;font-size:16px;letter-spacing:.2em;border:1px solid var(--accent-soft);transition:background .2s,color .2s}
.btn-primary{background:var(--accent-soft);color:var(--ink)}
.btn-primary:hover{background:#fff;border-color:#fff}
.btn-ghost{color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* sections */
.section{padding:96px 0}
.section.alt{background:var(--mist)}
.sec-title{font-family:var(--serif);font-size:32px;letter-spacing:.12em;color:var(--ink);padding-left:16px;border-left:4px solid var(--seal);line-height:1.2;margin-bottom:20px}
.sec-sub{color:var(--muted);margin:-4px 0 40px 20px}

/* products */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.grid figure{cursor:zoom-in;background:#fff;border:1px solid var(--line)}
.grid .pic{overflow:hidden}
.grid img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.grid figure:hover img{transform:scale(1.05)}
.grid figure{overflow:hidden}
figcaption{padding:14px 16px 16px;display:flex;flex-direction:column;gap:2px}
figcaption b{font-family:var(--serif);font-size:18px;color:var(--ink)}
figcaption span{font-size:14px;color:var(--muted)}

/* about */
.about{display:grid;grid-template-columns:1.3fr 1fr;gap:72px;align-items:start}
.about p{margin-bottom:16px;text-align:justify}
.steps{border-left:2px solid var(--accent);padding-left:28px;display:flex;flex-direction:column;gap:20px;margin-top:8px}
.steps li{position:relative;display:flex;flex-direction:column}
.steps li::before{content:"";position:absolute;left:-36px;top:11px;width:14px;height:14px;background:var(--paper);border:2px solid var(--accent);border-radius:50%}
.steps b{font-family:var(--serif);font-size:20px;color:var(--ink)}
.steps span{color:var(--muted);font-size:14px}

/* news */
.news-cols{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.news{padding:22px 0;border-bottom:1px solid var(--line)}
.news:first-of-type{padding-top:8px}
.news time{font-size:13px;color:var(--accent)}
.news h3{font-family:var(--serif);font-size:20px;color:var(--ink);margin:2px 0 8px;line-height:1.5}
.news .sum{font-size:15px;color:var(--muted);text-align:justify}

/* contact */
.contact{background:var(--ink);color:#d6dde4;padding:80px 0 0}
.contact-in{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.contact h2{font-family:var(--serif);font-size:32px;letter-spacing:.12em;color:#fff;margin-bottom:12px}
.contact dl{display:grid;grid-template-columns:5em 1fr;gap:10px 16px}
.contact dt{color:var(--accent-soft)}
.copy{margin-top:64px;padding:20px;text-align:center;font-size:13px;color:#98a5b1;border-top:1px solid rgba(255,255,255,.1)}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(5,10,16,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px}
.lightbox[hidden]{display:none}
.lightbox img{max-height:80vh;max-width:min(92vw,1000px);object-fit:contain}
.lightbox p{color:#fff;font-family:var(--serif);letter-spacing:.1em}
.lightbox button{position:absolute;top:20px;right:24px;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;padding:4px 16px;font:inherit;cursor:pointer}

/* responsive */
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.about,.news-cols,.contact-in{grid-template-columns:1fr;gap:48px}}
@media(max-width:760px){
  .site-header{padding:0 18px}
  .menu-btn{display:block}
  .nav{position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:rgba(16,27,38,.98);padding:8px 24px 16px;display:none}
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}
  .hero::after{background:linear-gradient(0deg,rgba(9,16,24,.8),rgba(9,16,24,.4))}
  .section{padding:64px 0}
  .grid{gap:14px}
  .btn{min-width:130px;padding:12px 22px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
