/* ===== 红杉官网子页共用样式（v18同族·浅底两族制） ===== */
* { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth; scroll-padding-top:88px }
body { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif; color:#1a1a1a; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden; background:#ffffff }
a { text-decoration:none; color:inherit }
img { display:block }

:root {
  --maxw:1120px; --r:10px; --r-sm:8px;
  --red:#993333; --red-dark:#7f2b2b; --red-light:#b25151; --red-pale:#eddadb;
  --dark:#1a1a1a; --gray:#666666; --gray-light:#999999; --border:#e0e0e0;
}

@keyframes grow { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0; transform:translateY(40px); transition:all .9s cubic-bezier(.16,1,.3,1) }
.reveal.visible { opacity:1; transform:translateY(0) }
.d1 { transition-delay:.1s } .d2 { transition-delay:.2s } .d3 { transition-delay:.3s }

/* ===== NAV ===== */
.nav { position:fixed; top:0; left:0; right:0; z-index:1000; transition:all .5s cubic-bezier(.16,1,.3,1) }
.nav-transparent { background:#ffffff }
.nav-scrolled { background:rgba(255,255,255,.97); backdrop-filter:blur(20px); box-shadow:0 1px 20px rgba(26,26,26,.06) }
.nav-inner { max-width:var(--maxw); margin:0 auto; padding:0 32px; height:72px; display:flex; align-items:center; justify-content:space-between }
.logo { display:flex; align-items:center; gap:12px; font-size:16px; font-weight:700; color:var(--dark); letter-spacing:-.3px }
.logo-img { height:40px; width:auto; object-fit:contain }
.fb .logo-img { height:32px }
.nav-links { display:flex; align-items:center; gap:36px }
.nav-links a:not(.nav-cta) { font-size:14px; color:var(--gray); font-weight:500; position:relative; padding:4px 0; transition:color .3s }
.nav-links a:not(.nav-cta)::after { content:''; position:absolute; bottom:-2px; left:50%; transform:translateX(-50%); width:0; height:2px; background:var(--red); border-radius:1px; transition:width .4s cubic-bezier(.16,1,.3,1) }
.nav-links a:not(.nav-cta):hover { color:var(--dark) }
.nav-links a:not(.nav-cta):hover::after { width:100% }
.nav-links a.active:not(.nav-cta) { color:var(--dark); font-weight:600 }
.nav-links a.active:not(.nav-cta)::after { width:100% }
.nav-cta { background:var(--red); color:#fff; border:none; padding:9px 18px; border-radius:999px; font-size:13px; font-weight:600; line-height:1.2; cursor:pointer; transition:all .35s }
.nav-cta:hover { background:var(--red-dark); transform:translateY(-2px); box-shadow:0 8px 20px rgba(153,51,51,.2) }
.mobile-menu { display:none; background:none; border:none; cursor:pointer; color:var(--dark); flex-direction:column; justify-content:center; gap:5px; width:44px; height:44px; padding:0; align-items:center }
.mobile-menu i { display:block; width:22px; height:2px; background:currentColor; border-radius:1px; transition:transform .3s, opacity .3s }
.nav-drop { position:relative }
.nav-drop>a::after { content:''; display:inline-block; width:0; height:0; border-left:3.5px solid transparent; border-right:3.5px solid transparent; border-top:4.5px solid currentColor; margin-left:5px; vertical-align:middle; opacity:.75 }
/* 箭头升权：压掉 .nav-links a::after 的下划线属性（两条规则作用于同一伪元素·不打架） */
.nav-links .nav-drop>a:not(.nav-cta)::after { position:static; bottom:auto; left:auto; transform:none; width:0; height:0; background:none; display:inline-block; border-left:3.5px solid transparent; border-right:3.5px solid transparent; border-top:4.5px solid currentColor; margin-left:5px; vertical-align:middle; opacity:.75 }
.nav-links .nav-drop>a:not(.nav-cta):hover::after { width:0 }
.nav-drop-panel { position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(6px); min-width:172px; background:#ffffff; border:1px solid var(--border); border-radius:12px; box-shadow:0 16px 40px rgba(26,26,26,.12); padding:8px; opacity:0; visibility:hidden; transition:all .28s cubic-bezier(.16,1,.3,1); text-align:left }
.nav-drop:hover .nav-drop-panel, .nav-drop:focus-within .nav-drop-panel { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) }
.nav-drop-panel::before { content:''; position:absolute; top:-14px; left:0; right:0; height:14px }
.nav-drop-panel a { display:block; padding:9px 14px; font-size:13.5px; color:var(--gray); border-radius:8px; white-space:nowrap }
.nav-drop-panel a::after { display:none !important }
.nav-drop-panel a:hover { background:#f6f6f8; color:var(--red) }
.nav-drop-panel a.cur { color:var(--dark); font-weight:600; background:#faf5f5 }
.to-top { position:fixed; right:26px; bottom:26px; width:44px; height:44px; border-radius:50%; background:var(--dark); color:#fff; display:flex; align-items:center; justify-content:center; font-size:17px; opacity:0; visibility:hidden; transition:all .35s; z-index:900; cursor:pointer; border:none; box-shadow:0 6px 18px rgba(26,26,26,.28) }
.to-top.show { opacity:1; visibility:visible }
.to-top:hover { transform:translateY(-3px); background:var(--red-dark) }
@keyframes menuIn { from{opacity:0;transform:translateY(-8px)} to{opacity:1;transform:none} }

/* ===== 子页首屏（深红族·全站唯一红色时刻） ===== */
.sub-hero { position:relative; overflow:hidden; background:linear-gradient(160deg,#672121 0%,#521919 45%,#421212 100%); padding:168px 32px 96px }
.sub-hero::before { content:''; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(78deg, transparent 0 26px, rgba(255,255,255,.045) 26px 28px) }
.sub-hero-inner { max-width:var(--maxw); margin:0 auto; position:relative; z-index:2 }
.crumb { font-size:12.5px; color:rgba(255,255,255,.8); margin-bottom:18px }
.crumb a { color:rgba(255,255,255,.88); border-bottom:1px solid rgba(255,255,255,.3) }
.crumb a:hover { color:#fff; border-color:#fff }
.sub-hero .kicker { display:inline-block; font-size:12px; font-weight:700; letter-spacing:2px; color:#ffffff; background:rgba(255,255,255,.14); padding:6px 14px; border-radius:100px; margin-bottom:20px }
.sub-hero h1 { font-size:46px; font-weight:600; line-height:1.15; letter-spacing:-1.5px; color:#ffffff; margin-bottom:16px; max-width:640px }
.sub-hero p { font-size:16.5px; color:rgba(255,255,255,.92); line-height:1.75; max-width:560px }

/* ===== SECTION 壳 ===== */
.sec { position:relative; padding:96px 0 }
.sec::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:180px; height:1px; background:linear-gradient(90deg,transparent,var(--border),transparent) }
.sec.tint { background:radial-gradient(rgba(26,26,26,.035) 1px,transparent 1px) 0 0/26px 26px, linear-gradient(180deg,#ffffff 0%,#f6f9fc 14%,#f6f9fc 100%) }
.si { max-width:var(--maxw); margin:0 auto; padding:0 32px; position:relative; z-index:2 }
.sh { text-align:center; margin-bottom:52px }
.sh .eyebrow { font-size:11.5px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:#67788a; margin-bottom:12px }
.sh h2 { font-size:36px; font-weight:600; letter-spacing:-1.5px; color:var(--dark); line-height:1.15 }
.sh p { font-size:15.5px; color:var(--gray); margin-top:12px; max-width:560px; margin-left:auto; margin-right:auto; line-height:1.7 }
.sh::after { content:''; display:block; width:48px; height:2px; margin:20px auto 0; border-radius:2px; background:linear-gradient(90deg,var(--red-light),var(--red)) }
.sh.left { text-align:left }
.sh.left p { margin-left:0 }
.sh.left::after { margin-left:0 }

/* 方案概述 */
.overview-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center }
.overview-text p { font-size:15px; color:var(--gray); line-height:1.9; margin-bottom:16px }
.overview-text p strong { color:var(--dark) }
.arch-card { background:#ffffff; border:1px solid var(--border); border-radius:var(--r); padding:18px; box-shadow:0 4px 16px rgba(26,26,26,.03) }
.arch-card img { width:100%; border-radius:6px }
.arch-cap { text-align:center; font-size:12px; color:var(--gray-light); padding-top:10px }

/* 特性卡 */
.feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
.feat-item { background:#ffffff; border:1px solid var(--border); border-radius:var(--r-sm); padding:26px; transition:all .4s cubic-bezier(.16,1,.3,1); position:relative; overflow:hidden }
.feat-item::before { content:''; position:absolute; top:0; left:0; width:3px; height:100%; background:var(--red); transform:scaleY(0); transform-origin:top; transition:transform .4s cubic-bezier(.16,1,.3,1) }
.feat-item:hover { border-color:rgba(153,51,51,.25); box-shadow:0 8px 24px rgba(153,51,51,.08); transform:translateY(-3px) }
.feat-item:hover::before { transform:scaleY(1) }
.feat-item .no { font-size:12px; font-weight:700; color:var(--red); letter-spacing:1px; margin-bottom:10px }
.feat-item h4 { font-size:16px; font-weight:700; margin-bottom:8px; color:var(--dark) }
.feat-item p { font-size:13px; color:var(--gray); line-height:1.7 }

/* 案例块 */
.case-block { background:#ffffff; border:1px solid var(--border); border-radius:var(--r); padding:44px; margin-bottom:28px; transition:all .5s }
.case-block:hover { box-shadow:0 12px 36px rgba(26,26,26,.06) }
.case-top { display:flex; align-items:center; gap:12px; margin-bottom:18px; flex-wrap:wrap }
.case-tag { display:inline-block; font-size:11px; font-weight:700; letter-spacing:1.5px; color:var(--red); background:var(--red-pale); padding:5px 12px; border-radius:100px }
.case-block h3 { font-size:24px; font-weight:700; color:var(--dark); letter-spacing:-.5px }
.case-block .case-desc { font-size:14px; color:var(--gray); line-height:1.85; margin-bottom:22px }
.case-photos { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:24px }
.case-photos figure { border-radius:var(--r-sm); overflow:hidden; border:1px solid var(--border); position:relative }
.case-photos img { width:100%; height:190px; object-fit:cover; transition:transform .5s }
.case-photos figure:hover img { transform:scale(1.05) }
.case-photos figcaption { font-size:11.5px; color:var(--gray-light); text-align:center; padding:7px 4px; background:#fafafb }
.case-list-title { font-size:13px; font-weight:700; color:var(--dark); letter-spacing:1px; margin-bottom:14px }
.case-list { display:grid; grid-template-columns:repeat(3,1fr); gap:8px 20px; margin-bottom:20px }
.case-list li { list-style:none; font-size:13px; color:var(--gray); line-height:1.5; padding-left:20px; position:relative }
.case-list li::before { content:'✓'; position:absolute; left:0; color:var(--red); font-weight:700 }
.case-chips { display:flex; gap:10px; flex-wrap:wrap }
.case-chips span { font-size:12.5px; font-weight:600; color:var(--dark); background:#fafafb; border:1px solid var(--border); border-radius:100px; padding:7px 16px }

/* 时间线（关于我们·零一万物式竖排） */
.tl { max-width:760px; margin:0 auto }
.tl-row { display:grid; grid-template-columns:96px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--border) }
.tl-row:last-child { border-bottom:none }
.tl-date { font-size:14px; font-weight:800; color:var(--red); letter-spacing:.5px; padding-top:2px }
.tl-body h4 { font-size:17px; font-weight:700; color:var(--dark); margin-bottom:6px }
.tl-body p { font-size:13.5px; color:var(--gray); line-height:1.7 }

/* 证书全墙（关于我们） */
.cert-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px }
.cert-grid .c { background:#ffffff; border:1px solid var(--border); border-radius:8px; padding:10px; display:flex; align-items:center; justify-content:center; height:170px }
.cert-grid .c img { max-width:100%; max-height:100%; object-fit:contain }

/* 地图 */
.map-box { width:100%; height:380px; background:#eef1f4; border-radius:var(--r); overflow:hidden; border:1px solid var(--border) }

/* ===== CTA 浅底行动卡 ===== */
.cta-sec { padding:110px 32px 96px; background:#ffffff }
.cta-card { max-width:780px; margin:0 auto; text-align:center; background:#ffffff; border:1px solid var(--border); border-radius:var(--r); padding:56px 48px; box-shadow:0 4px 16px rgba(26,26,26,.03); position:relative; overflow:hidden; transition:all .5s cubic-bezier(.16,1,.3,1) }
.cta-card:hover { box-shadow:0 12px 36px rgba(153,51,51,.08); transform:translateY(-4px) }
.cta-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--red-light),var(--red)) }
.cta-sec h2 { font-size:32px; font-weight:700; letter-spacing:-1.5px; margin-bottom:12px; color:var(--dark) }
.cta-sec>p { font-size:15.5px; color:var(--gray); margin-bottom:30px; max-width:460px; margin-left:auto; margin-right:auto; line-height:1.7 }
.cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap }
.cta-btn { padding:12px 28px; border-radius:999px; font-size:14px; font-weight:600; line-height:1.2; cursor:pointer; transition:all .4s; border:none }
.cta-btn:hover { transform:translateY(-3px) }
.cta-btn-pri { background:var(--red); color:#fff }
.cta-btn-pri:hover { background:var(--red-dark); box-shadow:0 12px 28px rgba(153,51,51,.22) }
.cta-btn-ghost { background:transparent; color:var(--dark); border:1.5px solid var(--border) }
.cta-btn-ghost:hover { border-color:rgba(153,51,51,.4); color:var(--red) }

/* ===== 咨询弹卡 ===== */
.consult-mask { position:fixed; inset:0; z-index:2000; background:rgba(12,19,35,.58); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; visibility:hidden; transition:all .3s }
.consult-mask.show { opacity:1; visibility:visible }
.consult-card { background:#ffffff; border-radius:16px; width:100%; max-width:430px; padding:36px 34px 30px; position:relative; transform:translateY(18px) scale(.97); transition:transform .35s cubic-bezier(.16,1,.3,1); box-shadow:0 30px 80px rgba(12,19,35,.35) }
.consult-mask.show .consult-card { transform:translateY(0) scale(1) }
.consult-x { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:none; background:#f4f4f6; color:var(--gray); font-size:14px; cursor:pointer; transition:all .25s }
.consult-x:hover { background:var(--red-pale); color:var(--red); transform:rotate(90deg) }
.consult-badge { display:inline-block; font-size:11px; font-weight:700; letter-spacing:2px; color:var(--red); background:var(--red-pale); padding:5px 12px; border-radius:100px; margin-bottom:14px }
.consult-card h3 { font-size:24px; font-weight:800; color:var(--dark); letter-spacing:-.5px; margin-bottom:6px }
.consult-head p { font-size:13.5px; color:var(--gray); line-height:1.6; margin-bottom:22px }
.consult-tel { display:flex; align-items:baseline; gap:10px; padding:16px 18px; background:#fafafb; border:1px solid var(--border); border-radius:12px; margin-bottom:16px }
.consult-tel .lbl { font-size:12.5px; color:var(--gray); flex-shrink:0 }
.consult-tel .num { font-size:22px; font-weight:800; color:var(--dark); letter-spacing:.3px }
.consult-cols { display:grid; grid-template-columns:112px 1fr; gap:16px; align-items:stretch }
.consult-qr-img { width:112px; height:112px; border:1px solid var(--border); border-radius:12px; background:#ffffff; object-fit:contain; padding:8px }
.consult-meta { display:flex; flex-direction:column; gap:12px; justify-content:center; font-size:12.5px; color:var(--gray); line-height:1.6 }
.consult-meta b { display:block; font-size:11px; color:var(--gray-light); font-weight:600; letter-spacing:1px; margin-bottom:2px }
.consult-meta a { color:var(--dark); font-weight:600; border-bottom:1px solid var(--border) }
.consult-meta a:hover { color:var(--red); border-color:var(--red) }

/* ===== FOOTER ===== */
.footer { border-top:1px solid var(--border); max-width:var(--maxw); margin:0 auto; padding:72px 32px 0 }
.ft-grid { display:grid; grid-template-columns:1.35fr .85fr .75fr 1.15fr; gap:44px }
.ft-col h5 { font-size:13px; font-weight:700; color:var(--dark); margin-bottom:16px; letter-spacing:.5px }
.ft-desc { font-size:13px; color:var(--gray); line-height:1.7; margin:16px 0 4px; max-width:300px }
.ft-col a { display:block; font-size:13px; color:var(--gray); padding:5px 0; transition:color .25s }
.ft-col a:hover { color:var(--red) }
.ft-col p { font-size:13px; color:var(--gray); line-height:1.8 }
.qual-badges { display:flex; gap:12px; margin-top:24px; flex-wrap:wrap }
.qual-badge { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:100px; font-size:12px; font-weight:600; background:#ffffff; color:var(--gray); border:1px solid var(--border) }
.fb { display:flex; align-items:center; gap:12px }
.fb .logo-img { height:34px }
.ft-hot { font-size:12.5px; color:var(--gray); margin-bottom:0 }
.ft-hot-n { font-size:12.5px; font-weight:400; color:var(--gray); letter-spacing:0; display:block; margin-top:3px }
.ft-hot-n em { font-style:normal; font-size:12px; font-weight:500; color:var(--gray-light); display:block; margin-top:4px }
.ft-qr { display:flex; align-items:center; gap:12px; margin-top:16px }
.ft-qr-img { width:96px; height:96px; border:1px solid var(--border); border-radius:10px; background:#ffffff; object-fit:contain; padding:7px; flex-shrink:0 }
.ft-qr-note { font-size:12px; color:var(--gray); max-width:130px; line-height:1.6 }
.ft-bar { border-top:1px solid var(--border); margin-top:56px; padding:22px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; font-size:12.5px; color:#8a8a8a }

/* ===== 手机菜单 ===== */
@media(max-width:768px){
  .nav.nav-open { background:rgba(255,255,255,.97); backdrop-filter:blur(20px) }
  .nav.nav-open .nav-links { display:flex; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:72px; left:0; right:0; background:rgba(255,255,255,.98); backdrop-filter:blur(20px); box-shadow:0 12px 24px rgba(26,26,26,.08); padding:8px 24px 20px; animation:menuIn .28s ease }
  .nav.nav-open .nav-links>*>a, .nav.nav-open .nav-links>a { padding:13px 4px; font-size:15px; border-bottom:1px solid var(--border) }
  .nav.nav-open .nav-links a::after { display:none }
  .nav.nav-open .nav-links .nav-cta { margin-top:14px; text-align:center; padding:12px; border-bottom:none; border-radius:8px }
  .nav.nav-open .nav-drop-panel { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; padding:0 0 0 16px }
}
@media(max-width:1024px){
  .sec{padding:72px 0} .sh{margin-bottom:40px} .sh h2{font-size:30px}
  .sub-hero{padding:140px 24px 72px} .sub-hero h1{font-size:36px}
  .overview-grid{grid-template-columns:1fr; gap:32px}
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .case-block{padding:32px 26px}
  .case-photos{grid-template-columns:repeat(2,1fr)}
  .case-photos img{height:160px}
  .case-list{grid-template-columns:repeat(2,1fr)}
  .cert-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:768px){
  .nav-links{display:none} .mobile-menu{display:flex}
  .mobile-menu.open i:nth-child(1){ transform:translateY(7px) rotate(45deg) }
  .mobile-menu.open i:nth-child(2){ opacity:0 }
  .mobile-menu.open i:nth-child(3){ transform:translateY(-7px) rotate(-45deg) }
  .sub-hero h1{font-size:30px} .sub-hero p{font-size:14.5px}
  .feat-grid{grid-template-columns:1fr}
  .case-photos{grid-template-columns:1fr} .case-photos img{height:200px}
  .case-list{grid-template-columns:1fr}
  .cert-grid{grid-template-columns:repeat(2,1fr)}
  .ft-grid{grid-template-columns:1fr;gap:40px} .ft-bar{flex-direction:column;text-align:center;gap:6px}
  .ft-qr{justify-content:center}
  .tl-row{grid-template-columns:70px 1fr; gap:16px}
  .cta-card{padding:40px 22px}
}

/* ===== 品质层（评奖级细节·261008） ===== */
::selection { background:#f3d6d6; color:#5e1f1f }
:focus-visible { outline:2px solid #b25151; outline-offset:3px; border-radius:2px }
::-webkit-scrollbar { width:10px; height:10px }
::-webkit-scrollbar-track { background:transparent }
::-webkit-scrollbar-thumb { background:#d6d6db; border-radius:6px; border:2px solid #ffffff }
::-webkit-scrollbar-thumb:hover { background:#b25151 }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important }
  .reveal { opacity:1 !important; transform:none !important }
}

/* ===== 子页首屏入场编排 ===== */
.sub-hero-inner > * { opacity:0; animation:grow .9s cubic-bezier(.16,1,.3,1) forwards }
.crumb { animation-delay:.05s }
.sub-hero .kicker { animation-delay:.16s }
.sub-hero h1 { animation-delay:.28s }
.sub-hero p { animation-delay:.42s }
