/* 姓氏溯源 · 多页站共享样式 —— 东方宗族美学 · 高级 · 动态
   所有页面共用本文件。页面只组合 class，不要改本文件（如需新组件，在页面内 <style scoped block>）。 */

:root{
  --ink:#1A1A1A; --ink-soft:#2A2A2A; --red:#9E2B25; --red-deep:#7C1F1B;
  --gold:#C9A24B; --gold-soft:#D9BE80; --paper:#F4EFE6; --paper2:#EAE4D7;
  --cream:#DDD5C6; --muted:#6B6256; --line:rgba(26,26,26,.12); --line-gold:rgba(201,162,75,.45);
  --shadow:0 24px 60px -32px rgba(26,18,12,.55); --shadow-soft:0 14px 40px -28px rgba(26,18,12,.4);
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,serif;
  --sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --wrap:1180px; --r:14px; --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:var(--sans); color:var(--ink-soft); background:var(--paper);
  font-size:17px; line-height:1.72; -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(1200px 600px at 80% -10%,rgba(201,162,75,.10),transparent 60%);
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif); color:var(--ink); line-height:1.18; font-weight:700; margin:0}
p{margin:0 0 1em}
.wrap{width:min(var(--wrap),92vw); margin-inline:auto}

/* i18n: 默认中文，html[lang=en] 切英文 */
.en{display:none}
html[lang="en"] .zh{display:none}
html[lang="en"] .en{display:revert}

/* ---------- header / nav ---------- */
.site-header{position:sticky; top:0; z-index:60; transition:background .3s,box-shadow .3s,border-color .3s;
  border-bottom:1px solid transparent; backdrop-filter:saturate(140%) blur(10px)}
.site-header.is-scrolled{background:rgba(244,239,230,.82); border-bottom-color:var(--line); box-shadow:0 8px 30px -24px rgba(26,18,12,.6)}
.nav{display:flex; align-items:center; gap:24px; height:72px}
.nav__brand{display:flex; flex-direction:column; line-height:1.05; margin-right:auto}
.nav__brand b{font-family:var(--serif); font-size:22px; color:var(--ink); letter-spacing:.06em}
.nav__brand span{font-size:10px; letter-spacing:.42em; color:var(--gold); text-transform:uppercase}
.nav__links{display:flex; gap:26px; align-items:center}
.nav__link{font-size:14.5px; color:var(--ink-soft); position:relative; padding:6px 0; transition:color .2s}
.nav__link::after{content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:var(--gold); transition:width .25s var(--ease)}
.nav__link:hover,.nav__link[aria-current="page"]{color:var(--red)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{width:100%}
.nav__cta{font-size:14px; padding:10px 18px; border-radius:999px; background:var(--red); color:#fff; transition:transform .2s,background .2s}
.nav__cta:hover{background:var(--red-deep); transform:translateY(-1px)}
.lang-toggle{font-size:12.5px; letter-spacing:.1em; color:var(--muted); border:1px solid var(--line); border-radius:999px; padding:6px 12px; cursor:pointer; background:transparent}
.lang-toggle:hover{border-color:var(--gold); color:var(--ink)}
.nav__toggle{display:none; width:42px; height:42px; border:1px solid var(--line); border-radius:10px; background:transparent; cursor:pointer; position:relative}
.nav__toggle span,.nav__toggle span::before,.nav__toggle span::after{content:""; position:absolute; left:11px; width:20px; height:2px; background:var(--ink); transition:.25s}
.nav__toggle span{top:20px}.nav__toggle span::before{top:-6px}.nav__toggle span::after{top:6px}

/* ---------- buttons / atoms ---------- */
.btn{display:inline-flex; align-items:center; gap:10px; padding:14px 26px; border-radius:999px; font-size:15px;
  font-weight:500; cursor:pointer; transition:transform .2s var(--ease),box-shadow .2s,background .2s,color .2s; border:1px solid transparent}
.btn--primary{background:var(--red); color:#fff; box-shadow:var(--shadow-soft)}
.btn--primary:hover{background:var(--red-deep); transform:translateY(-2px)}
.btn--ghost{border-color:var(--line); color:var(--ink)}
.btn--ghost:hover{border-color:var(--gold); background:rgba(201,162,75,.08); transform:translateY(-2px)}
.btn--gold{background:var(--gold); color:#231a0d}.btn--gold:hover{background:var(--gold-soft); transform:translateY(-2px)}
.eyebrow,.kicker{font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); font-weight:600; margin:0 0 14px}
.hairline{height:1px; background:linear-gradient(90deg,var(--gold),transparent); border:0; margin:0}
.pill{display:inline-flex; gap:8px; align-items:center; font-size:12.5px; letter-spacing:.12em; color:var(--muted);
  border:1px solid var(--line-gold); border-radius:999px; padding:6px 14px; background:rgba(255,255,255,.4)}
.lead{font-size:19px; color:var(--ink-soft); max-width:62ch}
.muted{color:var(--muted)}

/* ---------- sections ---------- */
.section{padding:104px 0; position:relative}
.section--tight{padding:72px 0}
.section--band{background:linear-gradient(180deg,var(--paper2),var(--paper)); border-block:1px solid var(--line)}
.section--ink{background:var(--ink); color:var(--cream)}
.section--ink h1,.section--ink h2,.section--ink h3{color:#fff}
.section__head{max-width:760px; margin-bottom:54px}
.section__head h2{font-size:clamp(30px,4vw,46px)}
.section__head .lead{margin-top:18px}

/* ---------- hero ---------- */
.hero{position:relative; min-height:88vh; display:flex; align-items:flex-end; color:#fff; overflow:hidden}
.hero__media{position:absolute; inset:0; z-index:-2}
.hero__media img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:slowzoom 18s var(--ease) forwards}
.hero__media::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(20,14,10,.86) 0%,rgba(20,14,10,.5) 45%,rgba(20,14,10,.15) 100%),
            linear-gradient(0deg,rgba(20,14,10,.7),transparent 55%)}
.hero__inner{padding:0 0 96px; max-width:780px}
.hero .display{font-size:clamp(44px,7vw,86px); color:#fff; letter-spacing:.02em; line-height:1.04}
.hero .lead{color:rgba(255,255,255,.86); font-size:clamp(17px,2vw,22px); margin:22px 0 34px}
.hero__eyebrow{color:var(--gold-soft)}
.hero__actions{display:flex; gap:16px; flex-wrap:wrap}
.hero__scroll{position:absolute; right:6vw; bottom:42px; writing-mode:vertical-rl; letter-spacing:.3em;
  font-size:11px; color:rgba(255,255,255,.7); text-transform:uppercase}
.page-hero{position:relative; padding:160px 0 86px; color:#fff; overflow:hidden}
.page-hero__media{position:absolute; inset:0; z-index:-2}
.page-hero__media img{width:100%;height:100%;object-fit:cover}
.page-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,14,10,.85),rgba(20,14,10,.35))}
.page-hero .display{font-size:clamp(36px,5.5vw,64px); color:#fff}
.page-hero .lead{color:rgba(255,255,255,.85); margin-top:18px}

/* ---------- grids / cards ---------- */
.grid{display:grid; gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center}
.split--rev{grid-template-columns:.95fr 1.05fr}
.card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px; transition:transform .3s var(--ease),box-shadow .3s,border-color .3s; position:relative; overflow:hidden}
.card::before{content:""; position:absolute; left:0; top:0; height:3px; width:0; background:linear-gradient(90deg,var(--red),var(--gold)); transition:width .35s var(--ease)}
.card:hover{transform:translateY(-6px); box-shadow:var(--shadow); border-color:var(--line-gold)}
.card:hover::before{width:100%}
.card__num{font-family:var(--serif); font-size:30px; color:var(--gold); font-weight:700}
.card h3{font-size:20px; margin:10px 0 8px}
.card p{font-size:15px; color:var(--muted); margin:0}
.card--paper{background:var(--paper2); border-color:transparent}

/* stats */
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.stat__num{font-family:var(--serif); font-size:clamp(34px,4vw,52px); color:var(--red); line-height:1}
.stat__label{font-size:14px; color:var(--muted); margin-top:8px; letter-spacing:.04em}

/* figure / media */
.figure{border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow); position:relative}
.figure img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease)}
.figure:hover img{transform:scale(1.05)}
.figure--tall img{aspect-ratio:4/5}
.figure__cap{position:absolute; left:18px; bottom:16px; color:#fff; font-size:13px; letter-spacing:.08em; text-shadow:0 2px 12px rgba(0,0,0,.6)}
.media-band{display:grid; grid-template-columns:repeat(12,1fr); gap:16px; align-items:stretch}

/* layered three-step */
.layers{display:grid; gap:18px}
.layer{display:grid; grid-template-columns:auto 1fr auto; gap:28px; align-items:center; padding:26px 30px;
  background:var(--paper2); border-radius:var(--r); border-left:5px solid var(--red); transition:transform .3s var(--ease),box-shadow .3s}
.layer:nth-child(2){border-left-color:var(--ink)} .layer:nth-child(3){border-left-color:var(--gold)}
.layer:hover{transform:translateX(8px); box-shadow:var(--shadow-soft)}
.layer__no{font-family:var(--serif); font-size:40px; color:var(--gold)}
.layer__title{font-family:var(--serif); font-size:21px; color:var(--ink); font-weight:700}
.layer__value{font-size:14px; color:var(--red); font-weight:600; text-align:right; max-width:18ch}

/* timeline */
.timeline{display:grid; gap:0; counter-reset:tl}
.timeline__item{position:relative; padding:0 0 36px 42px; border-left:2px solid var(--line-gold)}
.timeline__item::before{counter-increment:tl; content:counter(tl); position:absolute; left:-17px; top:-4px; width:32px; height:32px;
  border-radius:50%; background:var(--red); color:#fff; display:grid; place-items:center; font-size:14px; font-weight:600}
.timeline__item:last-child{border-left-color:transparent}
.timeline h4{font-size:18px; margin-bottom:4px}

/* ---------- pricing ---------- */
.price-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch}
.price-card{background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:32px 28px; display:flex; flex-direction:column; transition:transform .3s var(--ease),box-shadow .3s}
.price-card:hover{transform:translateY(-6px); box-shadow:var(--shadow)}
.price-card--featured{background:var(--ink); color:var(--cream); border-color:var(--ink); transform:scale(1.03)}
.price-card--featured h3,.price-card--featured .price__amount{color:#fff}
.price-card--featured:hover{transform:scale(1.03) translateY(-6px)}
.price-card__tag{font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:600}
.price-card h3{font-size:23px; margin:8px 0 4px}
.price-card__aud{font-size:13px; color:var(--muted); margin-bottom:18px}
.price-card--featured .price-card__aud{color:var(--cream)}
.price__amount{font-family:var(--serif); font-size:34px; color:var(--ink); font-weight:700}
.price__amount small{display:block; font-family:var(--sans); font-size:13px; color:var(--muted); font-weight:400; margin-top:4px}
.price-card--featured .price__amount small{color:var(--cream)}
.price-list{list-style:none; padding:0; margin:18px 0 0; display:grid; gap:10px}
.price-list li{font-size:14.5px; padding-left:22px; position:relative}
.price-list li::before{content:"—"; position:absolute; left:0; color:var(--gold)}
.addon-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px}
.addon{background:var(--paper2); border-radius:var(--r); padding:22px 24px; border-top:3px solid var(--gold)}
.addon b{font-family:var(--serif); font-size:16px; color:var(--ink)}
.addon .price{display:block; color:var(--red); font-weight:600; margin:6px 0; font-size:15px}
.addon span{font-size:13.5px; color:var(--muted)}
.ladder{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; margin-top:24px; background:#fff}
.ladder__step{padding:22px 24px; border-right:1px solid var(--line)}
.ladder__step:last-child{border-right:0}
.ladder__step b{font-size:15px; color:var(--ink)} .ladder__step span{display:block; font-size:13.5px; color:var(--muted); margin-top:6px}

/* graph */
.graph-stage{position:relative; aspect-ratio:16/11; border-radius:var(--r); overflow:hidden; background:radial-gradient(120% 120% at 50% 30%,#241a14,#120d09); box-shadow:var(--shadow)}
.graph-stage canvas{width:100%; height:100%; display:block}
.legend{display:grid; gap:12px}
.legend__item{display:flex; gap:12px; align-items:center; font-size:14.5px}
.legend__dot{width:12px; height:12px; border-radius:50%; flex:none}

/* form */
.form{display:grid; gap:16px; background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:30px; box-shadow:var(--shadow-soft)}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.field{display:flex; flex-direction:column; gap:6px}
.field label{font-size:13px; color:var(--muted)}
.field input,.field textarea{font:inherit; font-size:15px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:var(--paper); transition:border-color .2s}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--gold)}

/* ---------- footer ---------- */
.site-footer{background:var(--ink); color:var(--cream); padding:64px 0 32px}
.site-footer a{color:var(--cream); opacity:.8} .site-footer a:hover{opacity:1; color:var(--gold-soft)}
.footer__grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand b{font-family:var(--serif); font-size:24px; color:#fff; letter-spacing:.06em}
.footer__brand p{margin-top:12px; color:rgba(221,213,198,.7); font-size:14px; max-width:36ch}
.footer__col h4{font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:16px}
.footer__col a{display:block; font-size:14.5px; padding:5px 0}
.footer__base{display:flex; justify-content:space-between; gap:16px; padding-top:24px; font-size:12.5px; color:rgba(221,213,198,.55); flex-wrap:wrap}

/* ---------- reveal animation ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-in{opacity:1; transform:none}
.reveal[data-delay="1"]{transition-delay:.08s} .reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s} .reveal[data-delay="4"]{transition-delay:.32s}
@keyframes slowzoom{to{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero__media img{animation:none;transform:none}}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .nav__links{position:fixed; inset:72px 0 auto 0; flex-direction:column; gap:0; background:var(--paper);
    border-bottom:1px solid var(--line); padding:8px 6vw 20px; transform:translateY(-130%); transition:transform .3s var(--ease); box-shadow:var(--shadow)}
  .nav__links.is-open{transform:none}
  .nav__link{padding:14px 0; border-bottom:1px solid var(--line); width:100%}
  .nav__toggle{display:block}
  .grid-3,.grid-4,.price-grid,.addon-grid,.ladder,.stats{grid-template-columns:1fr}
  .grid-2,.split,.split--rev,.footer__grid,.form-grid{grid-template-columns:1fr}
  .layer{grid-template-columns:auto 1fr} .layer__value{display:none}
  .section{padding:72px 0}
}
