/* ============================================================
 * 聖鑫宇 ESTELLA — 全站样式
 * 设计令牌来源：Ardot 设计稿 718305118180871
 * ============================================================ */
:root{
  --ink:#0E2A3B;        /* 深墨绿 */
  --ink2:#10333F;
  --gold:#C09E60;       /* 金 */
  --gold-lt:#D9CBAE;
  --cream:#F8F6F2;      /* 米白 */
  --teal:#3FA9A0;
  --cyan:#3FC8E0;
  --grey:#5C6368;
  --grey2:#4A5A64;
  --card-dark:#101F27;
  --card-dark2:#122A38;
  --line:rgba(255,255,255,.10);
  --maxw:1296px;
  --font-serif:"Source Han Serif CN","Noto Serif SC","Songti SC",serif;
  --font-sans:"Sarasa Gothic SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:120px 0}
.h2{font-family:var(--font-serif);font-weight:700;font-size:44px;line-height:1.25;color:var(--ink)}
.h2.light{color:var(--cream)}
.eyebrow{display:inline-block;font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--gold);margin-bottom:16px;text-transform:uppercase}
.lead{font-size:16px;line-height:1.85;color:var(--grey2);max-width:720px}
.lead.center{margin:0 auto;text-align:center}
.center{text-align:center}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:100;background:rgba(248,246,242,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(14,42,59,.06)}
.header-inner{max-width:var(--maxw);margin:0 auto;height:84px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.logo{display:flex;align-items:center;gap:12px}
.logo-mark{width:34px;height:34px;border-radius:9px;background:var(--ink);color:var(--gold);font-family:var(--font-serif);font-weight:700;font-size:18px;display:flex;align-items:center;justify-content:center}
.logo-text{display:flex;flex-direction:column;line-height:1.15}
.logo-name{font-family:var(--font-serif);font-weight:700;font-size:20px;color:var(--ink)}
.logo-name em{font-style:normal;letter-spacing:.04em}
.logo-sub{font-size:10px;color:var(--grey);letter-spacing:.02em}
.nav{display:flex;gap:28px;align-items:center}
.nav a{font-size:15px;font-weight:500;color:#1B2124;transition:color .2s;white-space:nowrap}
.nav a:hover{color:var(--gold)}
.header-right{display:flex;align-items:center;gap:20px}
.lang-switch{display:flex;background:#ECE8E0;border-radius:17px;padding:4px}
.lang-btn{border:0;background:transparent;color:var(--grey);font-size:13px;font-weight:600;padding:5px 12px;border-radius:13px;cursor:pointer;transition:all .2s;font-family:var(--font-sans)}
.lang-btn.active{background:var(--ink);color:#fff}
.btn-dark{background:var(--ink);color:#fff;font-size:14px;font-weight:600;padding:11px 24px;border-radius:21px;transition:opacity .2s}
.btn-dark:hover{opacity:.88}
.menu-toggle{display:none;background:none;border:0;font-size:24px;color:var(--ink);cursor:pointer}

/* ---------- Buttons ---------- */
.btn-gold{display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:var(--ink);font-size:16px;font-weight:600;height:54px;padding:0 32px;border-radius:27px;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s;font-family:var(--font-sans)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(192,158,96,.35)}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--cream);font-size:16px;font-weight:500;height:54px;padding:0 32px;border-radius:27px;border:1px solid rgba(248,246,242,.35);transition:background .2s}
.btn-ghost:hover{background:rgba(248,246,242,.1)}

/* ---------- Hero (centered + full-width banner) ---------- */
.hero{background:var(--ink);color:var(--cream);overflow:hidden}
.hero-inner{max-width:var(--maxw);margin:0 auto;padding:88px 72px 0;display:flex;flex-direction:column;align-items:center;text-align:center}
.badge{display:inline-flex;align-items:center;gap:8px;background:#16364A;border-radius:16px;padding:7px 16px;font-size:13px;color:var(--gold-lt);margin-bottom:30px}
.badge .dot{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.hero-title{font-family:var(--font-sans);font-weight:700;font-size:66px;line-height:1.45;color:var(--cream);margin-bottom:24px}
.hero-sub{font-size:18px;line-height:1.78;color:#9FB3BF;max-width:680px;margin-bottom:30px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-bottom:40px}
.hero-banner{width:100%;margin-top:8px}
.hero-banner img{width:100%;height:480px;object-fit:cover;border-radius:18px;display:block}

/* ---------- Positioning ---------- */
.pos{background:var(--cream)}
.pos-band{display:grid;grid-template-columns:560px 1fr;border-radius:20px;overflow:hidden;border:1px solid rgba(14,42,59,.08);box-shadow:0 24px 60px rgba(14,42,59,.06);background:#fff}
.pos-left{background:var(--cream);padding:80px 56px;display:flex;flex-direction:column;justify-content:center}
.pos-left .eyebrow{color:var(--gold)}
.pos-title{margin:18px 0 22px;font-size:48px;line-height:1.22}
.pos-left .lead{margin:0 0 40px;max-width:440px}
.pos-stats{display:flex;gap:44px}
.pos-stat{display:flex;flex-direction:column;gap:8px}
.ps-n{font-family:var(--font-serif);font-size:40px;font-weight:700;color:var(--ink);line-height:1}
.ps-l{font-size:13px;color:var(--grey2);letter-spacing:.02em}
.pos-globe{position:relative;background:radial-gradient(120% 120% at 60% 40%,#183a4d 0%,#0E2A3B 60%,#081b26 100%);min-height:480px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pos-globe img{width:100%;height:100%;object-fit:cover;object-position:center}
.pos-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.pos-card{background:#fff;border:1px solid rgba(14,42,59,.07);border-radius:18px;padding:38px 32px;transition:transform .25s,box-shadow .25s}
.pos-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(14,42,59,.08)}
.pc-ico{width:52px;height:52px;border-radius:14px;background:rgba(192,158,96,.12);color:var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.pc-ico svg{width:26px;height:26px}
.pos-card h3{font-family:var(--font-serif);font-size:22px;color:var(--ink);margin-bottom:12px}
.pos-card p{font-size:15px;color:var(--grey2);line-height:1.75}

/* ---------- Overseas ---------- */
.overseas{background:#0E2A3B}
.ov-head{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;margin-bottom:56px;flex-wrap:wrap}
.ov-head .h2{font-family:var(--font-serif);font-size:52px}
.eyebrow.gold{color:var(--gold)}
.ov-sub{font-size:17px;line-height:1.75;color:#9FB3BF;max-width:400px}
.ov-sub.center{margin:0 auto;text-align:center}
.ov-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ov-card{background:#10222D;border-radius:18px;overflow:hidden;transition:transform .25s}
.ov-card:hover{transform:translateY(-6px)}
.ov-img{height:220px;position:relative;display:flex;align-items:flex-end;padding:20px;background-size:cover;background-position:center}
.ov-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,59,0) 40%,rgba(14,42,59,.65) 100%)}
.ov-img .ov-tag{position:relative;z-index:1}
.ov-img.jp{background-image:url(assets/ov-jp.png)}
.ov-img.us{background-image:url(assets/ov-us.png)}
.ov-img.db{background-image:url(assets/ov-db.png)}
.ov-tag{font-size:12px;font-weight:600;letter-spacing:.15em;color:var(--gold-lt);background:rgba(0,0,0,.3);padding:5px 12px;border-radius:12px}
.ov-body{padding:28px 32px 34px}
.ov-body h3{font-family:var(--font-serif);font-size:23px;color:var(--cream);margin-bottom:12px}
.ov-body p{font-size:15px;color:#8FA3AF;line-height:1.75}

/* ---------- Core Products ---------- */
.products{background:var(--cream)}
.cp-head{text-align:center;max-width:820px;margin:0 auto 72px}
.cp-head .h2{margin:16px 0}
.prod-row{display:grid;grid-template-columns:560px 1fr;gap:64px;align-items:center;margin-bottom:96px}
.prod-row:last-child{margin-bottom:0}
.prod-row.reverse{grid-template-columns:1fr 560px}
.prod-row.reverse .prod-txt{order:1}.prod-row.reverse .prod-img{order:2}
.prod-img{height:400px;border-radius:20px;background-size:cover;background-position:center}
.pimg1{background-image:url(assets/prod1.png)}
.pimg2{background-image:url(assets/prod2.png)}
.pimg3{background-image:url(assets/prod3.png)}
.pimg4{background-image:url(assets/prod4.png)}
.prod-no{font-size:14px;font-weight:600;color:var(--gold);display:block;margin-bottom:14px}
.prod-name{font-family:var(--font-serif);font-size:34px;color:var(--ink);margin-bottom:10px}
.prod-en{font-size:14px;color:#8A96A0;display:block;margin-bottom:18px;letter-spacing:.02em}
.prod-desc{font-size:16px;line-height:1.9;color:var(--grey2)}
.stats{display:flex;gap:40px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(14,42,59,.1)}
.stat b{font-family:var(--font-serif);font-size:32px;color:var(--ink);display:block}
.stat span{font-size:13px;color:var(--grey)}
.tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.tag{font-size:13px;color:var(--ink);background:rgba(192,158,96,.14);border:1px solid rgba(192,158,96,.3);padding:7px 16px;border-radius:16px}

/* ---------- Science ---------- */
.science{background:var(--ink)}
.sc-head{text-align:center;max-width:760px;margin:0 auto 64px}
.sc-head .h2{margin:16px 0}
.sc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.sc-stat{text-align:center;padding:40px 24px;background:#122A38;border:1px solid var(--line);border-radius:18px}
.sc-stat b{font-family:var(--font-serif);font-size:48px;color:var(--gold);display:block;margin-bottom:10px}
.sc-stat span{font-size:14px;color:#9FB3BF}

/* ---------- Journeys (ServiceDetail) ---------- */
.journey{background:var(--ink)}
.journey .cp-head .h2,.journey .cp-head .lead{color:var(--cream)}
.journey .cp-head .lead{color:#9FB3BF}
/* Miami flagship feature */
.feat{display:grid;grid-template-columns:560px 1fr;gap:0;background:var(--card-dark2);border-radius:20px;overflow:hidden;margin-bottom:48px}
.feat-img{min-height:480px;background:url(assets/feat.png) center/cover no-repeat}
.feat-body{padding:56px 56px 56px 52px;display:flex;flex-direction:column;justify-content:center}
.feat-badge{display:inline-block;align-self:flex-start;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--ink);background:var(--gold);padding:6px 14px;border-radius:14px;margin-bottom:22px}
.feat-body h3{font-family:var(--font-serif);font-size:34px;color:var(--cream);margin-bottom:16px}
.feat-body p{font-size:16px;line-height:1.9;color:#9FB3BF;margin-bottom:26px}
.feat-chips{display:flex;flex-wrap:wrap;gap:12px}
.feat-chips span{font-size:13px;color:var(--gold-lt);border:1px solid rgba(192,158,96,.4);padding:7px 16px;border-radius:16px}
/* 3 sub-cards */
.jn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.jn-card{background:var(--card-dark2);border-radius:18px;overflow:hidden;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.jn-card:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(0,0,0,.3)}
.jn-img{height:200px;background-size:cover;background-position:center}
.j1{background-image:url(assets/jn1.png)}
.j2{background-image:url(assets/jn2.png)}
.j3{background-image:url(assets/jn3.png)}
.jn-body{padding:26px 28px 32px}
.jn-tag{display:block;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--gold);margin-bottom:10px}
.jn-body h3{font-family:var(--font-serif);font-size:22px;color:var(--cream);margin-bottom:12px}
.jn-body p{font-size:14px;color:#8FA3AF;line-height:1.75}

/* ---------- Story (StoryHub network) ---------- */
.story{background:var(--cream)}
.story-inner{display:grid;grid-template-columns:560px 1fr;gap:64px;align-items:center;text-align:left;max-width:var(--maxw)}
.story-img{width:100%;height:440px;border-radius:18px;background:url(assets/story.png) center/cover no-repeat}
.story-text .h2{margin:16px 0 24px;color:var(--ink)}
.story-desc{font-size:16px;line-height:1.9;color:var(--grey2);margin-bottom:36px}
.st-stats{display:flex;gap:44px}
.st-stat b{font-family:var(--font-serif);font-size:40px;color:var(--gold);display:block;line-height:1}
.st-stat span{font-size:14px;color:var(--grey2);margin-top:8px;display:block}

/* ---------- Mission (dark, 3 cards) ---------- */
.mission{background:var(--ink)}
.ms-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:52px}
.ms-card{padding:0 8px}
.ms-card:nth-child(2){border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);padding:0 40px}
.ms-ico{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:1px solid rgba(192,158,96,.4);color:var(--gold);font-size:24px;margin-bottom:22px}
.ms-card h3{font-family:var(--font-serif);font-size:20px;color:var(--cream);margin-bottom:14px}
.ms-card p{font-size:14px;color:#9FB3BF;line-height:1.75}

/* ---------- Vision (warm-cream, 3 phase cards) ---------- */
.vision{background:#F1EEE8}
.vs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
.vs-card{background:#fff;border:1px solid rgba(14,42,59,.08);border-radius:16px;padding:36px 30px}
.vs-tag{display:inline-block;font-size:13px;font-weight:600;color:var(--gold);background:rgba(14,42,59,.06);padding:6px 16px;border-radius:16px;margin-bottom:22px}
.vs-card h3{font-family:var(--font-serif);font-size:20px;color:var(--ink);margin-bottom:14px}
.vs-card p{font-size:14px;color:var(--grey2);line-height:1.8}
.vs-dark{background:var(--ink);border-color:var(--ink)}
.vs-dark .vs-tag{background:rgba(192,158,96,.16);color:var(--gold)}
.vs-dark h3{color:var(--gold)}
.vs-dark p{color:var(--cream)}

/* ---------- Tracks / Support / Cooperation ---------- */
.tracks{background:#F1EEE8}
.tri-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tri-card{background:#fff;border:1px solid rgba(14,42,59,.07);border-radius:18px;padding:36px 32px}
.tri-card h3{font-family:var(--font-serif);font-size:22px;color:var(--ink);margin-bottom:12px}
.tri-card p{font-size:15px;color:var(--grey2)}
.support{background:var(--cream)}
.sup-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}
.sup-head-l{max-width:560px}
.sup-head-l .h2{margin-top:14px}
.sup-head-sub{max-width:340px;font-size:15px;color:var(--grey2);line-height:1.8}
.sup-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sup-card{display:flex;align-items:flex-start;gap:20px;background:#fff;border:1px solid #E6E3DC;border-radius:16px;padding:30px 28px}
.sup-bar{flex:0 0 auto;width:4px;align-self:stretch;background:var(--gold);border-radius:2px}
.sup-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:rgba(192,158,96,.12);color:var(--gold);font-size:22px}
.sup-tw{flex:1}
.sup-card h3{font-family:var(--font-serif);font-size:19px;color:var(--ink);margin-bottom:10px}
.sup-card p{font-size:14px;color:var(--grey2);line-height:1.75}
.coop{background:var(--cream)}
.coop-card{background:#fff;border:1px solid rgba(14,42,59,.07);border-radius:18px;padding:36px 32px;position:relative}
.coop-no{position:absolute;top:28px;right:32px;font-family:var(--font-serif);font-size:34px;font-weight:700;color:rgba(192,158,96,.35)}
.coop-card h3{font-family:var(--font-serif);font-size:22px;color:var(--ink);margin-bottom:12px}
.coop-card p{font-size:15px;color:var(--grey2)}

/* ---------- Moat / Differentiators ---------- */
.moat{background:var(--ink)}
.moat-head{margin-bottom:44px}
.moat-head .h2{margin-top:14px}
.moat-list{display:flex;flex-direction:column;gap:16px}
.moat-row{display:flex;align-items:center;gap:32px;background:#122A38;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:28px 32px}
.moat-ico{flex:none;width:60px;height:60px;border-radius:50%;border:1px solid rgba(192,158,96,.4);display:flex;align-items:center;justify-content:center;font-size:24px;color:var(--gold)}
.moat-c b{display:block;font-family:var(--font-serif);font-size:19px;color:var(--cream);margin-bottom:6px}
.moat-c p{font-size:14px;line-height:1.7;color:#9FB3BF}

/* ---------- CTA (gold background, centered) ---------- */
.cta{background:var(--gold);padding:100px 0}
.cta-inner{display:flex;flex-direction:column;align-items:center;text-align:center}
.cta-eyebrow{font-size:14px;font-weight:600;letter-spacing:.06em;color:#5C4A28;margin-bottom:14px}
.cta-title{font-family:var(--font-serif);font-weight:700;font-size:46px;color:var(--ink);margin-bottom:20px}
.cta-sub{font-size:18px;color:#3D3320;line-height:1.7;max-width:640px;margin-bottom:34px}
.cta-form{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}
.cta-form input{height:56px;width:200px;border-radius:28px;border:0;background:var(--cream);color:var(--ink);padding:0 24px;font-size:15px;font-family:var(--font-sans)}
.cta-form input::placeholder{color:#8A8C8A}
.cta-form input:focus{outline:none;box-shadow:0 0 0 2px var(--ink)}
.cta-btn{height:56px;padding:0 36px;border-radius:28px;border:0;background:var(--ink);color:var(--cream);font-size:16px;font-weight:600;cursor:pointer;font-family:var(--font-sans);transition:opacity .2s}
.cta-btn:hover{opacity:.9}
.form-msg{font-size:14px;min-height:20px;margin-top:16px;text-align:center}
.form-msg.ok{color:#0E2A3B;font-weight:600}
.form-msg.err{color:#8A2A1A;font-weight:600}
.cta-tags{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:36px;max-width:900px}
.cta-tags span{font-size:14px;color:var(--cream);background:rgba(0,0,0,.14);padding:8px 18px;border-radius:19px}

/* ---------- Footer ---------- */
.footer{background:#081A25;color:#9FB3BF;padding:72px 0 40px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.ft-brand .logo-name{color:var(--cream);font-size:22px;display:block;margin-bottom:10px}
.ft-brand .logo-sub{color:#7E93A0}
.ft-col h4{font-size:15px;color:var(--cream);margin-bottom:18px}
.ft-col a{display:block;font-size:14px;color:#8FA3AF;margin-bottom:12px;transition:color .2s}
.ft-col a:hover{color:var(--gold)}
.ft-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:28px}
.ft-bottom p{font-size:13px;color:#6E828E}

/* ---------- Responsive ---------- */
@media(max-width:1200px){
  .header-inner{gap:16px}
  .nav{gap:20px}
  .nav a{font-size:14px}
  .header-right{gap:14px}
}
@media(max-width:960px){
  .section{padding:80px 0}
  .h2{font-size:34px}
  .nav,.header-right .btn-dark{display:none}
  .menu-toggle{display:block}
  .hero-inner{padding:64px 24px 0}
  .hero-title{font-size:38px;line-height:1.35}
  .hero-banner img{height:280px}
  .pos-cards,.ov-row,.sc-grid,.tri-grid,.sup-grid{grid-template-columns:1fr}
  .pos-band{grid-template-columns:1fr}
  .pos-left{padding:48px 28px}
  .pos-title{font-size:34px}
  .pos-stats{gap:28px;flex-wrap:wrap}
  .pos-globe{min-height:300px}
  .ov-head .h2{font-size:38px}
  .prod-row,.prod-row.reverse{grid-template-columns:1fr;gap:32px}
  .prod-row.reverse .prod-txt,.prod-row.reverse .prod-img{order:initial}
  .prod-img{height:260px}
  .jn-grid,.mv-grid,.cta-inner,.footer-grid{grid-template-columns:1fr;gap:32px}
  .feat{grid-template-columns:1fr}
  .feat-img{min-height:300px}
  .feat-body{padding:36px 28px}
  .story-inner{grid-template-columns:1fr;gap:32px}
  .story-img{height:320px}
  .st-stats{gap:32px}
  .nav.open{display:flex;position:absolute;top:84px;left:0;right:0;flex-direction:column;background:var(--cream);padding:20px 24px;gap:18px;border-bottom:1px solid rgba(14,42,59,.1)}
}
@media(max-width:560px){
  .stats{flex-wrap:wrap;gap:24px}
  .sc-stat b{font-size:38px}
  .container{padding:0 18px}
}
