/* ============================================================
   和尘 HCD · 全站样式 v3（hba.com 当前版实测复刻）
   浅色主题：#FBFBF9 米白底 / #091D1E 墨绿黑 / #B0B6B4 灰绿
   字体：Beausite Classic / Beausite Slick（缺字体降级系统无衬线）
   ============================================================ */

:root {
  --c-bg: #FBFBF9;
  --c-ink: #091D1E;
  --c-site: #B0B6B4;
  --c-mid: #6B7975;
  --c-soft: #F3F4F2;
  --c-line: rgba(9,29,30,.12);
  --c-accent: #6B7975;
  --f-body: 'Beausite Classic', system-ui, -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --f-title: 'Beausite Slick', 'Beausite Classic', system-ui, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --h-header: 88px;
  --gutter: clamp(20px, 4vw, 56px);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { background: var(--c-bg); color: var(--c-ink); font-family: var(--f-body); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
ul, ol { list-style: none; }
input, textarea, select { font: inherit; color: inherit; }
::selection { background: var(--c-ink); color: var(--c-bg); }

/* ---------- 通用 ---------- */
.sec { padding: clamp(64px, 10vh, 120px) var(--gutter); }
.sec--soft { background: var(--c-soft); }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: clamp(28px, 4.5vh, 48px); }
.sec-label { font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--c-mid); }
.sec-title { font-family: var(--f-title); font-size: clamp(30px, 4.4vw, 52px); font-weight: 500; letter-spacing: .01em; line-height: 1.12; }
.rv { opacity: 0; transform: translateY(22px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.rv.in { opacity: 1; transform: none; }

/* ---------- 顶栏（浅色 + 两级下拉） ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 300; background: rgba(251,251,249,.9); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--c-line); }
.header-inner { height: var(--h-header); display: flex; align-items: center; justify-content: space-between; padding: 0 var(--gutter); }
.wordmark { display: flex; align-items: baseline; gap: 12px; }
.wordmark b { font-family: var(--f-title); font-size: 30px; letter-spacing: .18em; font-weight: 600; }
.wordmark small { font-size: 12px; letter-spacing: .4em; color: var(--c-mid); }
.nav-desktop { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 30px); }
.nav-link { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink); padding: 8px 0; position: relative; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--c-ink); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav-link:hover::after, .nav-link.on::after { transform: scaleX(1); }
.nav-drop { position: relative; }
.nav-drop > button { font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink); padding: 8px 0; display: flex; align-items: center; gap: 6px; }
.nav-drop > button .caret { font-size: 8px; transition: transform .3s; }
.nav-drop.open > button .caret { transform: rotate(180deg); }
.drop-menu { position: absolute; top: calc(100% + 10px); left: -20px; min-width: 260px; background: var(--c-bg); border: 1px solid var(--c-line); padding: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; opacity: 0; visibility: hidden; transform: translateY(8px); transition: all .3s var(--ease); box-shadow: 0 24px 60px rgba(9,29,30,.12); max-height: 70vh; overflow-y: auto; }
.nav-drop.open .drop-menu { opacity: 1; visibility: visible; transform: none; }
.drop-menu a { display: block; padding: 7px 4px; font-size: 13px; color: var(--c-mid); transition: color .25s; }
.drop-menu a:hover { color: var(--c-ink); }
.burger { display: none; flex-direction: column; gap: 6px; padding: 8px; }
.burger span { width: 28px; height: 2px; background: var(--c-ink); transition: all .3s; }
body.menu-open .burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
body.menu-open .burger span:nth-child(2) { opacity: 0; }
body.menu-open .burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* 全屏菜单 */
.menu-overlay { position: fixed; inset: 0; z-index: 290; background: var(--c-bg); opacity: 0; visibility: hidden; transition: all .4s var(--ease); overflow-y: auto; }
body.menu-open .menu-overlay { opacity: 1; visibility: visible; }
.menu-inner { min-height: 100%; padding: 120px var(--gutter) 50px; display: flex; flex-direction: column; gap: 2px; }
.menu-inner a.menu-link { font-family: var(--f-title); font-size: clamp(26px, 5vh, 44px); padding: 10px 0; color: var(--c-ink); }
.menu-inner a.menu-link:hover { color: var(--c-mid); }
.menu-group-label { font-size: 11px; letter-spacing: .3em; color: var(--c-mid); margin: 20px 0 8px; text-transform: uppercase; }
.menu-sub-row { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.menu-sub-row a { font-size: 14px; color: var(--c-mid); padding: 4px 0; }
.menu-sub-row a:hover { color: var(--c-ink); }

/* ---------- 首屏（HBA 当前：视频 + 标语 + CTA） ---------- */
.hero { position: relative; min-height: 92svh; display: flex; align-items: center; overflow: hidden; padding: var(--h-header) var(--gutter) 60px; }
.hero-video, .hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-bg { background-size: cover; background-position: center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(9,29,30,.25), rgba(9,29,30,.45)); }
.hero-content { position: relative; z-index: 2; max-width: 1000px; color: #fff; }
.hero-kicker { font-size: 12px; font-weight: 700; letter-spacing: .34em; text-transform: uppercase; opacity: .9; margin-bottom: 24px; }
.hero-title { font-family: var(--f-title); font-size: clamp(38px, 6.4vw, 84px); font-weight: 500; line-height: 1.08; }
.hero-sub { margin-top: 20px; font-size: clamp(14px, 1.8vw, 19px); opacity: .9; letter-spacing: .06em; }
.hero-cta { display: inline-block; margin-top: 36px; border: 1px solid rgba(255,255,255,.7); padding: 14px 34px; font-size: 13px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; transition: all .3s; }
.hero-cta:hover { background: #fff; color: var(--c-ink); }

/* ---------- Who we are ---------- */
.whoweare-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: start; }
.whoweare-title { font-family: var(--f-title); font-size: clamp(40px, 5.4vw, 72px); font-weight: 500; line-height: 1.08; }
.whoweare-text { margin-top: 22px; font-size: 16px; color: var(--c-mid); line-height: 1.9; max-width: 560px; }
.stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--c-line); border: 1px solid var(--c-line); margin-top: 26px; }
.stat { background: var(--c-bg); padding: 26px 24px; }
.stat-num { font-family: var(--f-title); font-size: clamp(30px, 3.6vw, 46px); font-weight: 500; }
.stat-num em { font-style: normal; font-size: .55em; color: var(--c-mid); }
.stat-label { margin-top: 6px; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--c-mid); }

/* ---------- Featured 项目卡 ---------- */
.feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.4vw, 30px); }
.feat-card { display: block; cursor: pointer; }
.feat-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: var(--c-soft); }
.feat-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.feat-card:hover .feat-media img { transform: scale(1.05); }
.feat-media::after { content: ""; position: absolute; inset: 0; background: rgba(9,29,30,0); transition: background .4s; }
.feat-card:hover .feat-media::after { background: rgba(9,29,30,.18); }
.feat-title { margin-top: 16px; font-family: var(--f-title); font-size: 22px; font-weight: 500; line-height: 1.25; }
.feat-meta { margin-top: 6px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--c-mid); }

/* ---------- 内页页头 ---------- */
.page-hero { padding: calc(var(--h-header) + 60px) var(--gutter) 48px; border-bottom: 1px solid var(--c-line); }
.page-hero-label { font-size: 12px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--c-mid); margin-bottom: 14px; }
.page-hero-title { font-family: var(--f-title); font-size: clamp(44px, 7vw, 92px); font-weight: 500; line-height: 1.05; }
.page-hero-en { margin-top: 10px; font-size: 13px; letter-spacing: .26em; color: var(--c-mid); text-transform: uppercase; }
.page-hero-intro { margin-top: 18px; color: var(--c-mid); font-size: 15px; max-width: 640px; line-height: 1.85; }

/* ---------- 项目列表 ---------- */
.filterbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; padding: 22px var(--gutter); border-bottom: 1px solid var(--c-line); background: var(--c-soft); }
.filterbar-title { font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--c-mid); }
.filterbar select { background: var(--c-bg); border: 1px solid var(--c-line); padding: 10px 16px; font-size: 13.5px; min-width: 180px; color: var(--c-ink); }
.filterbar select:focus { outline: 1px solid var(--c-ink); }
.filter-count { margin-left: auto; font-size: 12px; letter-spacing: .14em; color: var(--c-mid); }
.proj-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 36px) clamp(14px, 2vw, 26px); padding: clamp(36px, 5vh, 60px) var(--gutter); }
.proj-card { cursor: pointer; }
.proj-media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--c-soft); }
.proj-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.proj-card:hover .proj-media img { transform: scale(1.05); }
.proj-media::after { content: "VIEW PROJECT"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; letter-spacing: .3em; color: #fff; background: rgba(9,29,30,.4); opacity: 0; transition: opacity .4s; }
.proj-card:hover .proj-media::after { opacity: 1; }
.proj-title { margin-top: 13px; font-family: var(--f-title); font-size: 19px; font-weight: 500; line-height: 1.3; }
.proj-meta { margin-top: 5px; font-size: 11.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--c-mid); }
.empty-tip { grid-column: 1/-1; text-align: center; color: var(--c-mid); padding: 70px 0; }

/* ---------- 详情模态 ---------- */
.detail-modal { position: fixed; inset: 0; z-index: 400; background: rgba(9,29,30,.96); color: #fff; display: flex; opacity: 0; visibility: hidden; transition: all .35s; }
.detail-modal.open { opacity: 1; visibility: visible; }
.dm-close { position: absolute; top: 20px; right: 28px; z-index: 5; font-size: 30px; color: #fff; }
.dm-close:hover { color: var(--c-site); }
.dm-stage { flex: 1.2; min-width: 0; background: #000; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.dm-stage img { width: 100%; height: 100%; object-fit: cover; }
.dm-panel { flex: 1; min-width: 340px; max-width: 540px; overflow-y: auto; padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; gap: 16px; }
.dm-kicker { font-size: 11px; font-weight: 700; letter-spacing: .3em; color: var(--c-site); text-transform: uppercase; }
.dm-title { font-family: var(--f-title); font-size: clamp(22px, 2.6vw, 32px); font-weight: 500; line-height: 1.3; }
.dm-meta { font-size: 12px; font-weight: 700; letter-spacing: .18em; color: var(--c-site); text-transform: uppercase; border-top: 1px solid rgba(255,255,255,.2); padding-top: 16px; }
.dm-desc { font-size: 14.5px; color: rgba(255,255,255,.85); line-height: 1.9; }
.dm-gallery { display: flex; gap: 10px; flex-wrap: wrap; }
.dm-gallery img { width: 84px; height: 54px; object-fit: cover; cursor: pointer; border: 2px solid transparent; opacity: .7; transition: all .25s; }
.dm-gallery img.on, .dm-gallery img:hover { border-color: var(--c-site); opacity: 1; }
.dm-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; font-size: 20px; display: flex; align-items: center; justify-content: center; transition: all .3s; }
.dm-nav:hover { background: rgba(255,255,255,.25); }
.dm-prev { left: 16px; } .dm-next { right: 16px; }
body.dm-open { overflow: hidden; }

/* ---------- 观点/新闻 ---------- */
.news-filterbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 8px 0 26px; }
.filter-btn { border: 1px solid var(--c-line); padding: 9px 20px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-mid); transition: all .3s; }
.filter-btn:hover { border-color: var(--c-ink); color: var(--c-ink); }
.filter-btn.on { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-bg); }
.project-search { margin-left: auto; background: var(--c-bg); border: 1px solid var(--c-line); padding: 10px 16px; font-size: 13px; min-width: 200px; }
.news-list { border-top: 1px solid var(--c-line); }
.news-item { display: grid; grid-template-columns: 110px 130px 1fr 40px; gap: 18px; align-items: baseline; padding: 24px 6px; border-bottom: 1px solid var(--c-line); cursor: pointer; transition: background .3s, padding-left .3s; }
.news-item:hover { background: var(--c-soft); padding-left: 14px; }
.n-date { font-size: 13px; color: var(--c-mid); }
.n-tag { font-size: 10.5px; font-weight: 700; letter-spacing: .2em; color: var(--c-mid); border: 1px solid var(--c-mid); padding: 3px 12px; justify-self: start; text-transform: uppercase; }
.n-title { font-family: var(--f-title); font-size: 18px; font-weight: 500; line-height: 1.4; }
.n-excerpt { font-size: 13.5px; color: var(--c-mid); margin-top: 6px; }
.n-arrow { color: var(--c-mid); font-size: 18px; }
.news-item:hover .n-arrow { transform: translateX(6px); }
.pager { display: flex; gap: 8px; justify-content: center; margin-top: 36px; }

/* ---------- About / People / Careers / Contact ---------- */
.about-statement { font-family: var(--f-title); font-size: clamp(26px, 3.8vw, 46px); font-weight: 500; line-height: 1.4; max-width: 1000px; }
.about-intro { margin-top: 20px; color: var(--c-mid); font-size: 16px; max-width: 720px; line-height: 1.9; }
.value-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; }
.value-item { border-top: 1px solid var(--c-line); padding-top: 18px; }
.value-title { font-family: var(--f-title); font-size: 21px; font-weight: 500; }
.value-en { font-size: 11px; font-weight: 700; letter-spacing: .26em; color: var(--c-mid); margin-top: 4px; text-transform: uppercase; }
.value-desc { font-size: 14px; color: var(--c-mid); margin-top: 10px; line-height: 1.8; }
.timeline { border-left: 1px solid var(--c-line); padding-left: 32px; display: grid; gap: 24px; }
.tl-item { position: relative; }
.tl-item::before { content: ""; position: absolute; left: -37px; top: 7px; width: 9px; height: 9px; background: var(--c-mid); }
.tl-year { font-family: var(--f-title); font-size: 19px; font-weight: 500; color: var(--c-mid); }
.tl-text { font-size: 14.5px; margin-top: 4px; }

.people-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(22px, 3vw, 36px) clamp(16px, 2.2vw, 28px); }
.person { cursor: pointer; }
.person-media { position: relative; overflow: hidden; aspect-ratio: 3 / 4; background: var(--c-soft); }
.person-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.person:hover .person-media img { transform: scale(1.04); }
.person-bio { position: absolute; inset: auto 0 0 0; padding: 20px 18px; font-size: 12.5px; color: #fff; line-height: 1.7; background: linear-gradient(180deg, transparent, rgba(9,29,30,.82)); opacity: 0; transform: translateY(10px); transition: all .4s; }
.person:hover .person-bio { opacity: 1; transform: none; }
.person-name { margin-top: 13px; font-family: var(--f-title); font-size: 19px; font-weight: 500; }
.person-role { margin-top: 3px; font-size: 12.5px; color: var(--c-mid); }
.person-office { margin-top: 2px; font-size: 11px; font-weight: 700; letter-spacing: .18em; color: var(--c-site); text-transform: uppercase; }

.job-list { border-top: 1px solid var(--c-line); }
.job-row { display: grid; grid-template-columns: 1fr 130px 120px 110px; gap: 16px; align-items: center; padding: 24px 6px; border-bottom: 1px solid var(--c-line); transition: background .3s, padding-left .3s; }
.job-row:hover { background: var(--c-soft); padding-left: 14px; }
.job-role { font-family: var(--f-title); font-size: 19px; font-weight: 500; }
.job-desc { font-size: 13px; color: var(--c-mid); margin-top: 4px; }
.job-meta { font-size: 12px; font-weight: 700; letter-spacing: .14em; color: var(--c-site); text-transform: uppercase; }
.job-apply a { display: inline-block; border: 1px solid var(--c-ink); padding: 9px 22px; font-size: 11px; font-weight: 700; letter-spacing: .2em; transition: all .3s; }
.job-apply a:hover { background: var(--c-ink); color: var(--c-bg); }
.apply-note { margin-top: 24px; color: var(--c-mid); font-size: 13px; line-height: 1.9; }

.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.c-block { border: 1px solid var(--c-line); padding: 22px; background: var(--c-soft); }
.c-city { font-family: var(--f-title); font-size: 20px; font-weight: 500; }
.c-block p { font-size: 13px; color: var(--c-mid); margin-top: 8px; line-height: 1.9; }
.contact-form { display: grid; gap: 16px; max-width: 640px; margin-top: 10px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-field label { display: block; font-size: 11px; font-weight: 700; letter-spacing: .22em; color: var(--c-mid); margin-bottom: 8px; text-transform: uppercase; }
.form-field input, .form-field textarea, .form-field select { width: 100%; background: var(--c-bg); border: 1px solid var(--c-line); padding: 13px 16px; font-size: 14px; transition: border-color .3s; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { outline: none; border-color: var(--c-ink); }
.form-submit { background: var(--c-ink); color: var(--c-bg); padding: 14px; font-size: 12px; font-weight: 700; letter-spacing: .26em; transition: opacity .3s; }
.form-submit:hover { opacity: .86; }
.form-note { font-size: 12px; color: var(--c-mid); }
.socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.social { border: 1px solid var(--c-line); padding: 9px 22px; font-size: 12px; font-weight: 700; letter-spacing: .16em; transition: all .3s; }
.social:hover { border-color: var(--c-ink); }
.loc-list { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.loc-item { font-size: 13px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--c-mid); }
.loc-item:hover { color: var(--c-ink); }

/* ---------- 页脚（墨绿黑底白字） ---------- */
.site-footer { background: var(--c-ink); color: var(--c-bg); padding: 44px var(--gutter); display: grid; gap: 18px; }
.footer-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 26px; }
.footer-label { font-size: 11px; font-weight: 700; letter-spacing: .28em; color: var(--c-site); text-transform: uppercase; }
.footer-links a { font-size: 12px; font-weight: 700; letter-spacing: .22em; color: var(--c-bg); transition: color .3s; }
.footer-links a:hover { color: var(--c-site); }
.footer-text { font-size: 12.5px; color: var(--c-site); }
.footer-dots { display: flex; gap: 10px; }
.footer-dots .dot { height: 22px; width: 22px; background: var(--c-site); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--c-ink); }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .nav-desktop { display: none; }
  .burger { display: flex; }
  .feat-grid, .proj-grid { grid-template-columns: repeat(2, 1fr); }
  .people-grid { grid-template-columns: repeat(3, 1fr); }
  .whoweare-grid { grid-template-columns: 1fr; }
  .value-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .detail-modal { flex-direction: column; overflow-y: auto; }
  .dm-stage { flex: none; height: 40vh; }
  .dm-panel { max-width: none; }
  .dm-prev, .dm-next { top: 20vh; }
}
@media (max-width: 640px) {
  .feat-grid, .proj-grid, .people-grid, .value-grid, .contact-grid { grid-template-columns: 1fr; }
  .news-item { grid-template-columns: 1fr; gap: 8px; }
  .n-arrow { display: none; }
  .job-row { grid-template-columns: 1fr; gap: 10px; }
  .form-row { grid-template-columns: 1fr; }
  .project-search { margin-left: 0; width: 100%; }
}

/* ---------- v6 UI 校准（HBA 当前版实测区块配色与组件） ---------- */
.scheme-linen { background: #F3EEEA; }
.scheme-eucalyptus { background: #E7ECE9; }
.scheme-forest { background: #091D1E; color: #FBFBF9; }
.scheme-sage { background: #DDE3DD; }
.scheme-marble { background: #ECEBE7; }
.scheme-forest .sec-label { color: #B0B6B4; }
.scheme-forest .whoweare-text, .scheme-forest .about-intro { color: #B0B6B4; }
.scheme-forest .stat { background: #091D1E; }
.scheme-forest .stat-label, .scheme-forest .stat-num em { color: #B0B6B4; }
.hero { min-height: 88svh; align-items: flex-end; padding-bottom: 10vh; background: #F3EEEA; color: #091D1E; }
.hero-video { display: none; }
.hero-overlay { display: none; }
.hero-content { max-width: 1200px; color: #091D1E; }
.hero-kicker { color: #6B7975; }
.hero-title { font-size: clamp(44px, 8vw, 110px); line-height: 1.02; }
.hero-sub { color: #6B7975; }
.hero-cta { border-color: #091D1E; color: #091D1E; }
.hero-cta:hover { background: #091D1E; color: #FBFBF9; }
.logo-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 20px; align-items: center; }
.logo-grid img { width: 100%; object-fit: contain; opacity: .8; transition: opacity .3s; }
.logo-grid img:hover { opacity: 1; }
.load-more-wrap { text-align: center; margin-top: 34px; }
.load-more { border: 1px solid #091D1E; padding: 13px 40px; font-size: 12px; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: #091D1E; transition: all .3s; }
.load-more:hover { background: #091D1E; color: #FBFBF9; }
.filter-radio-row { display: flex; flex-wrap: wrap; gap: 10px 16px; }
.filter-radio { border: 1px solid rgba(9,29,30,.15); padding: 9px 20px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #6B7975; transition: all .3s; }
.filter-radio.on { background: #091D1E; border-color: #091D1E; color: #FBFBF9; }
.filter-radio:hover { border-color: #091D1E; color: #091D1E; }
@media (max-width: 900px) { .logo-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .logo-grid { grid-template-columns: repeat(3, 1fr); } }

/* ---------- v7 hero 两列（HBA 实测：左文字右视频） ---------- */
.hero { padding: calc(var(--h-header) + 20px) var(--gutter) 60px; }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 60px); align-items: center; max-width: 1400px; margin: 0 auto; }
.hero-content { color: #091D1E; }
.hero-media { position: relative; overflow: hidden; aspect-ratio: 4 / 5; background: #E7ECE9; }
.hero-media video { width: 100%; height: 100%; object-fit: cover; }
.hero-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(251,251,249,.85); color: #091D1E; font-size: 18px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .3s; }
.hero-play:hover { background: #091D1E; color: #FBFBF9; }
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-media { aspect-ratio: 16 / 9; }
}

/* ---------- v8 首页首屏：全屏视频大展示（HBA 实测全屏媒体） ---------- */
.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; padding: calc(var(--h-header) + 10px) var(--gutter) clamp(48px, 9vh, 90px); overflow: hidden; background: #091D1E; }
.hero-grid { display: block; max-width: none; margin: 0; }
.hero-media { position: absolute; inset: 0; aspect-ratio: auto; background: #091D1E; z-index: 0; }
.hero-media video { width: 100%; height: 100%; object-fit: cover; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(9,29,30,.38) 0%, rgba(9,29,30,.08) 38%, rgba(9,29,30,.68) 100%); }
.hero-content { position: relative; z-index: 2; max-width: 980px; color: #FBFBF9; }
.hero-kicker { color: #B0B6B4; }
.hero-title { color: #FBFBF9; font-size: clamp(42px, 7.2vw, 100px); }
.hero-sub { color: rgba(251,251,249,.85); }
.hero-cta { border-color: rgba(251,251,249,.7); color: #FBFBF9; }
.hero-cta:hover { background: #FBFBF9; color: #091D1E; }
.hero-play { position: absolute; right: 26px; bottom: 26px; left: auto; top: auto; transform: none; z-index: 3; background: rgba(9,29,30,.5); color: #FBFBF9; border: 1px solid rgba(251,251,249,.4); }
.hero-play:hover { background: #FBFBF9; color: #091D1E; }

/* v8.1 文字绝对定位到左下（确保全屏视频+左下大标题） */
.hero-content { position: absolute; left: var(--gutter); bottom: clamp(48px, 9vh, 96px); max-width: 980px; }
.hero-grid { position: static; }

/* ---------- v9 真实菜单（HBA：分组下拉 + fullscreen_links） ---------- */
.drop-menu { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); display: flex; flex-wrap: wrap; gap: 8px 28px; min-width: 420px; max-width: 720px; }
.drop-group { min-width: 150px; }
.drop-subtitle { font-size: 10px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--c-mid); margin: 10px 0 4px; }
.drop-menu a { padding: 4px 4px; font-size: 13.5px; color: var(--c-ink); text-transform: lowercase; }
.drop-menu a:hover { color: var(--c-mid); }
.menu-inner a.menu-link { font-size: clamp(22px, 3.6vh, 34px); }
.menu-group-label { font-size: 10px; letter-spacing: .26em; color: var(--c-mid); margin: 18px 0 6px; text-transform: uppercase; }
.menu-sub-row { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.menu-sub-row a { font-size: 13.5px; color: var(--c-ink); text-transform: lowercase; padding: 2px 0; }
.menu-sub-row a:hover { color: var(--c-mid); }
/* fullscreen_links（HBA 实测：左标签 + 大 h2 链接 + 右悬停图） */
.fullscreen-links { background: #E7ECE9; }
.fl-wrap { display: grid; grid-template-columns: 120px 1fr 300px; gap: 30px; align-items: start; }
.fl-side h5 { font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--c-mid); }
.fl-links { display: flex; flex-direction: column; }
.fl-link { font-family: var(--f-title); font-size: clamp(26px, 3.6vw, 44px); line-height: 1.35; color: var(--c-ink); transition: color .3s, transform .3s; }
.fl-link:hover { color: var(--c-mid); transform: translateX(8px); }
.fl-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (max-width: 900px) {
  .fl-wrap { grid-template-columns: 1fr; }
  .fl-image { display: none; }
  .drop-menu { min-width: 0; }
}

/* 原版主题下的顶栏适配（.site-header 用原版 header 布局） */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 300; }
.site-header .container-fluid { padding-left: var(--site-padding, 40px); padding-right: var(--site-padding, 40px); }
.site-header .row { align-items: center; min-height: 80px; }
.logo-word { font-family: 'Beausite Slick','Beausite Classic',sans-serif; font-size: 30px; letter-spacing: .16em; font-weight: 400; color: #FBFBF9; }
.logo-cn { font-size: 12px; letter-spacing: .4em; color: #B0B6B4; margin-left: 10px; }
.site-header .header { display: flex; justify-content: flex-end; gap: clamp(16px, 2.4vw, 34px); align-items: center; margin: 0; padding: 0; list-style: none; }
.site-header .menu-item { position: relative; }
.site-header .menu-item > a { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #FBFBF9; text-decoration: none; }
.site-header .menu-item > a:hover { color: #B0B6B4; }
.burger { position: absolute; right: 24px; top: 26px; z-index: 310; display: none; flex-direction: column; gap: 6px; padding: 8px; }
.burger span { width: 28px; height: 2px; background: #FBFBF9; }
@media (max-width: 1200px) {
  .site-header .header { display: none; }
  .burger { display: flex; }
}

/* ---------- v10 首屏纯视频 + 透明浮层菜单 + Beausite LOGO ---------- */
.hero { min-height: 100svh; position: relative; overflow: hidden; padding: 0; background: #091D1E; display: block; align-items: initial; }
.hero::after { display: none; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero-grid, .hero-content, .hero-play, .hero-kicker, .hero-title, .hero-sub, .hero-cta { display: none; }
/* 顶栏透明浮在视频上 */
.site-header { background: transparent; border-bottom: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.site-header .row { min-height: 92px; }
/* LOGO：Beausite 字体，接近原版字标 */
.logo-word { font-family: 'Beausite Classic','Beausite Slick',sans-serif; font-size: 36px; font-weight: 600; letter-spacing: .14em; color: #FBFBF9; line-height: 1; }
.logo-cn { font-size: 12px; letter-spacing: .44em; color: rgba(251,251,249,.75); margin-left: 12px; }
/* 菜单大间隔，两端分布 */
.site-header .header { display: flex; justify-content: flex-end; gap: clamp(26px, 4vw, 58px); align-items: center; margin: 0; padding: 0; list-style: none; }
.site-header .menu-item > a { font-size: 14px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #FBFBF9; text-decoration: none; }
.site-header .menu-item > a:hover { color: rgba(251,251,249,.7); }
/* 移动端汉堡保持浮层 */
@media (max-width: 1200px) { .site-header .header { display: none; } .burger { display: flex; } }

/* v11：HBA 首页真实区块细节（sticky_gallery/signpost/post_slider 补强） */
.sticky_gallery { padding: clamp(80px, 12vh, 140px) 0; color: #FBFBF9; }
.sg-title { font-size: clamp(30px, 4vw, 52px); line-height: 1.15; }
.sg-desc { margin-top: 18px; font-size: 15px; color: #B0B6B4; max-width: 480px; line-height: 1.9; }
.sg-media { margin-top: 30px; overflow: hidden; }
.sg-media img { width: 100%; object-fit: cover; }
.sticky_gallery .btn { margin-top: 26px; border: 1px solid rgba(251,251,249,.5); padding: 12px 30px; font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #FBFBF9; display: inline-block; }
.sticky_gallery .btn:hover { background: #FBFBF9; color: #091D1E; }
.signpost_list { padding-top: clamp(60px, 9vh, 100px); }
.signpost-item { display: block; border-top: 1px solid rgba(9,29,30,.14); padding: 22px 6px; transition: padding-left .3s; }
.signpost-item:hover { padding-left: 12px; }
.signpost-item h4 { font-size: 24px; font-weight: 500; }
.signpost-item p { margin-top: 4px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: #6B7975; }
.slider-heading { font-size: clamp(26px, 3.4vw, 42px); font-weight: 500; margin-bottom: 26px; }
.ps-card { display: block; border-top: 1px solid rgba(9,29,30,.14); padding-top: 16px; }
.ps-date { font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #6B7975; }
.ps-title { margin-top: 10px; font-size: 15px; font-weight: 600; line-height: 1.5; }
.ps-person-img { overflow: hidden; aspect-ratio: 3 / 4; }
.ps-person-img img { width: 100%; height: 100%; object-fit: cover; }
.ps-name { margin-top: 12px; font-size: 17px; font-weight: 500; }
.ps-role { margin-top: 3px; font-size: 12px; color: #6B7975; }
.two_column_text h2 { font-size: clamp(28px, 3.6vw, 44px); font-weight: 500; }
.two_column_text p { color: #6B7975; font-size: 15px; line-height: 1.9; }
.two_column_text .btn { margin-top: 18px; border: 1px solid #091D1E; padding: 12px 30px; font-size: 12px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #091D1E; display: inline-block; }
.two_column_text .btn:hover { background: #091D1E; color: #FBFBF9; }
@media (max-width: 991px) {
  .sg-media { margin-top: 24px; }
}

/* ---------- v12 顶栏对齐（HBA 截图实测：LOGO 大粗字标 + 菜单整行均匀分布 + 搜索图标） ---------- */
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 300; background: transparent !important; border: none !important; }
.site-header .row { min-height: 96px; align-items: center; display: flex; flex-wrap: nowrap; }
.site-header .logo { flex: 0 0 auto; width: auto; padding-left: 8px; }
.logo-word { font-family: 'Beausite Classic','Beausite Slick',sans-serif; font-size: 44px; font-weight: 700; letter-spacing: .06em; color: #FFFFFF; line-height: 1; }
.logo-cn { display: none; }
.site-header .header-nav { flex: 1 1 auto; margin-left: 40px; }
.site-header .header { display: grid !important; grid-template-columns: repeat(6, 1fr); align-items: center; gap: 0; width: 100%; margin: 0; padding: 0; list-style: none; }
.site-header .menu-item { position: relative; }
.site-header .menu-item > a { display: inline-block; font-family: 'Beausite Classic',sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #FFFFFF; padding: 6px 0; }
.site-header .menu-item > a:hover { opacity: .7; }
.search-btn { flex: 0 0 auto; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; color: #fff; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; background: transparent; margin-left: 20px; transition: all .3s; }
.search-btn:hover { background: rgba(255,255,255,.12); }
.site-header .drop-menu { top: calc(100% + 14px); left: 0; background: #FBFBF9; padding: 20px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); min-width: 320px; max-width: 640px; }
/* 菜单文字在视频上初始化白色；滚动后给背景 */
.site-header.solid { background: rgba(9,29,30,.92) !important; }
.site-header.solid .logo-word, .site-header.solid .menu-item > a { color: #FBFBF9; }
@media (max-width: 1200px) {
  .site-header .header { display: none !important; }
  .search-btn { display: none; }
  .burger { display: flex; position: static; }
}
.hero { min-height: 100svh !important; }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* v13：对照参考截图（1750x965）精修顶栏 */
.site-header { padding: 0 40px; }
.site-header .row { min-height: 92px; }
.site-header .header { grid-template-columns: repeat(6, 1fr) !important; }
.site-header .menu-item > a { font-size: 12.5px; letter-spacing: .2em; }
.logo-word { font-size: 46px; font-weight: 600; letter-spacing: .04em; }

/* v14：确保视频显示并铺满 */
.hero-video { display: block !important; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
.hero { min-height: 100svh !important; background: #091D1E; }

/* v15：hero 严格铺满视口（对齐参考截图） */
html, body { margin: 0 !important; padding: 0 !important; }
.hero { height: 100vh !important; min-height: 100vh !important; max-height: 100vh; overflow: hidden; padding: 0 !important; margin: 0 !important; position: relative; }
.hero-video { position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.site-header { padding: 0 40px !important; }

/* v16：按参考截图比例精修顶栏（LOGO 大小 / 菜单字号 / 间距 / 搜索图标位置） */
.site-header { padding: 0 !important; }
.site-header .row { position: relative; min-height: 96px; display: block !important; }
.site-header .logo { position: absolute; left: 30px; top: 50%; transform: translateY(-50%); padding: 0; }
.logo-word { font-size: 40px; font-weight: 600; letter-spacing: .02em; }
.site-header .header-nav { position: absolute; left: 15.5%; right: 27%; top: 50%; transform: translateY(-50%); margin: 0; }
.site-header .header { display: grid !important; grid-template-columns: repeat(6, 1fr); gap: 0; width: 100%; margin: 0; padding: 0; }
.site-header .menu-item > a { font-size: 11.5px; font-weight: 600; letter-spacing: .12em; }
.search-btn { position: absolute; right: 24.5%; top: 50%; transform: translateY(-50%); margin: 0; width: 34px; height: 34px; }
@media (max-width: 1200px) {
  .site-header .header-nav { position: static !important; transform: none; margin-left: 20px; }
  .search-btn { position: static !important; transform: none; margin-left: 12px; }
  .site-header .row { display: flex !important; align-items: center; justify-content: space-between; }
  .site-header .logo { position: static !important; transform: none; }
}

/* v17：顶栏最终精确值（对照参考截图比例） */
.site-header .row { position: relative !important; min-height: 96px !important; display: block !important; }
.site-header .logo { position: absolute !important; left: 30px !important; top: 46% !important; transform: translateY(-50%) !important; padding: 0 !important; width: auto !important; }
.logo-word { display: block !important; font-family: 'Beausite Classic','Beausite Slick',sans-serif !important; font-size: 54px !important; font-weight: 600 !important; letter-spacing: .04em !important; line-height: 1 !important; color: #FFFFFF !important; }
.site-header .header-nav { position: absolute !important; left: 15.5% !important; width: 45% !important; right: auto !important; top: 50% !important; transform: translateY(-50%) !important; margin: 0 !important; visibility: visible !important; display: block !important; }
.site-header .header { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; width: 100% !important; gap: 0 !important; }
.site-header .menu-item { position: relative !important; }
.site-header .menu-item > a { font-family: 'Beausite Classic',sans-serif !important; font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: .16em !important; color: #FFFFFF !important; text-transform: uppercase !important; padding: 8px 0 !important; }
.search-btn { position: absolute !important; right: 25% !important; top: 50% !important; transform: translateY(-50%) !important; margin: 0 !important; width: 34px !important; height: 34px !important; display: flex !important; }
@media (max-width: 1200px) {
  .site-header .header-nav { position: static !important; width: auto !important; transform: none !important; display: none !important; }
  .search-btn { position: static !important; transform: none !important; margin-left: 10px !important; }
  .site-header .row { display: flex !important; align-items: center !important; justify-content: space-between !important; }
  .site-header .logo { position: static !important; transform: none !important; }
}

/* v18：菜单最终数值（左右边界与参考截图一致） */
.site-header .header-nav { left: 15.2% !important; width: 51% !important; }
.site-header .menu-item { white-space: nowrap !important; }
.site-header .menu-item > a { white-space: nowrap !important; font-size: 12px !important; letter-spacing: .14em !important; }
.site-header .menu-item:last-child > a { letter-spacing: .12em !important; }

/* v19：按 HBA 实测计算样式逐项对齐（视口 2560 数据） */
.site-header { padding: 0 !important; }
.site-header .row { min-height: 135px !important; display: block !important; position: relative !important; }
.site-header .logo { position: absolute !important; left: 40px !important; top: 50% !important; transform: translateY(-50%) !important; }
.logo-word { font-size: 54px !important; line-height: 1 !important; }
.site-header .header-nav { position: absolute !important; left: 17.3% !important; width: 78% !important; right: auto !important; top: 50% !important; transform: translateY(-50%) !important; }
.site-header .header { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; width: 100% !important; }
.site-header .menu-item { padding-left: 12px !important; }
.site-header .menu-item > a { font-size: 12px !important; font-weight: 700 !important; letter-spacing: 1.2px !important; line-height: 15px !important; }
.search-btn { position: absolute !important; right: 24px !important; top: 50% !important; transform: translateY(-50%) !important; }

/* ---------- v20：首页滚动区块修复（背景色/图片显示/sticky 布局） ---------- */
body { background: #F3EEEA !important; }
[data-reveal-animation] { opacity: 1 !important; transform: none !important; }
.two_column_text_image_video { background: #F3EEEA !important; padding-top: 170px !important; padding-bottom: 90px !important; }
.two_column_text_image_video h2 { font-size: clamp(40px, 6vw, 90px) !important; font-weight: 400 !important; }
.two_column_text_image_video figure { margin-top: 42px !important; }
.two_column_text_image_video figure img { display: block !important; width: 100% !important; height: auto !important; opacity: 1 !important; }
.two_column_text_image_video figcaption { margin-top: 12px; font-size: 12px; color: #6B7975; letter-spacing: .1em; }
.two_column_text_image_video .subtitle_right h5 { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: #6B7975; }
.two_column_text_image_video h3 { font-size: clamp(17px, 1.5vw, 22px) !important; font-weight: 400 !important; line-height: 1.65 !important; }
.two_column_text_image_video .btn { margin-top: 26px !important; display: inline-block; border: 1px solid #091D1E !important; color: #091D1E !important; padding: 13px 34px !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .2em !important; text-transform: uppercase !important; border-radius: 999px; }
.two_column_text_image_video .btn:hover { background: #091D1E !important; color: #FBFBF9 !important; }
.sticky_gallery, .sticky_gallery.forest { background: #091D1E !important; color: #FBFBF9 !important; padding: 120px 0 !important; }
.sticky_gallery .row { display: flex !important; align-items: flex-start !important; }
.sticky_gallery .col-lg-5 { width: 40% !important; flex: 0 0 40% !important; }
.sticky_gallery .col-lg-7 { width: 58% !important; flex: 0 0 58% !important; margin-left: 2%; }
.sg-media { position: sticky !important; top: 110px; }
.sg-media img { display: block !important; width: 100% !important; height: auto !important; opacity: 1 !important; }
.sticky_gallery .sg-title { font-size: clamp(34px, 4.2vw, 62px) !important; font-weight: 400 !important; line-height: 1.16 !important; }
.sticky_gallery .sg-desc { margin-top: 22px !important; font-size: 15px !important; color: #B0B6B4 !important; line-height: 1.9 !important; }
.signpost_list, .post_slider, .two_column_text { background: #F3EEEA !important; }
.signpost_list { padding-top: 110px !important; }
.post_slider { padding-top: 90px !important; padding-bottom: 90px !important; }
.two_column_text { padding-top: 100px !important; padding-bottom: 100px !important; }
.fullscreen_links { background: #E7ECE9 !important; padding: 90px 0 !important; }
/* v21：修复原版 clip-path 展开动画（无原版 JS 时不隐藏图片） */
figure img, .two_column_text_image_video img, .sticky_gallery img, .sg-media img, .ps-person-img img, .proj-media img { clip-path: none !important; -webkit-clip-path: none !important; }
[data-reveal-animation], [data-reveal-animation] * { clip-path: none !important; -webkit-clip-path: none !important; }
/* studios 页 */
.studios-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2px; background: rgba(9,29,30,.12); }
.studio-card { background: #F3EEEA; padding: 34px 26px; }
.studio-card h4 { font-size: 26px; font-weight: 400; }
.studio-card .st-region { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #6B7975; margin-bottom: 10px; }
.studio-card .st-tel { font-size: 13px; color: #6B7975; margin-top: 14px; }
.studio-card .btn { margin-top: 18px; display: inline-block; border: 1px solid #091D1E; padding: 10px 26px; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #091D1E; border-radius: 999px; }
.studio-card .btn:hover { background: #091D1E; color: #FBFBF9; }

/* v22：筛选标签 + studios 响应式 */
.active-filter-tag { display: inline-flex; align-items: center; gap: 12px; margin-left: 18px; padding: 7px 14px; border: 1px solid rgba(9,29,30,.25); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: #091D1E; border-radius: 999px; }
.active-filter-tag a { color: #6B7975; font-weight: 700; }
.active-filter-tag a:hover { color: #091D1E; }

/* v23：页面统一背景 + studios 页 */
html, body { background: #F3EEEA !important; }
body[data-page="studios"] .sec { background: #F3EEEA !important; }
body[data-page="studios"] .studios-grid { background: rgba(9,29,30,.08); }

/* v24：非首页顶栏实底（白字可读） */
body:not([data-page="home"]) .site-header { background: #091D1E !important; }
body:not([data-page="home"]) .site-header .logo-word,
body:not([data-page="home"]) .site-header .menu-item > a { color: #FBFBF9 !important; }
body:not([data-page="home"]) main, body:not([data-page="home"]) .page-hero { padding-top: 135px; }

/* v25：修复截图反馈的区块问题 */
.signpost_list { min-height: auto !important; padding-bottom: 60px !important; }
.post_slider { min-height: auto !important; padding: 72px 0 !important; }
.two_column_text { min-height: auto !important; }
/* fullscreen_links：浅绿底 + 深色大链接 + 右侧悬停图 */
.fullscreen_links { background: #E7ECE9 !important; color: #091D1E !important; padding: 90px 0 70px !important; }
.fullscreen_links h5 { color: #6B7975 !important; font-size: 11px !important; letter-spacing: .24em !important; text-transform: uppercase !important; }
.fullscreen_links a, .fullscreen_links .h2, .fullscreen_links-link-item { color: #091D1E !important; }
.fullscreen_links-link-item { font-family: var(--f-title, 'Beausite Classic', serif) !important; font-size: clamp(30px, 4.2vw, 58px) !important; line-height: 1.3 !important; font-weight: 400 !important; display: block; padding: 4px 0; transition: padding-left .3s, color .3s; }
.fullscreen_links-link-item:hover { color: #6B7975 !important; padding-left: 14px; }
.fullscreen_links-image { position: absolute; right: 40px; top: 50%; transform: translateY(-50%); width: 300px; }
.fullscreen_links-image figure { margin: 0; }
.fullscreen_links-image img { width: 100%; height: auto; display: block; object-fit: cover; }
.fullscreen_links .position-relative { position: relative; }

/* v26：fullscreen_links 深色链接 + 图片定位 */
.fullscreen_links .position-relative { position: relative !important; min-height: 520px; }
.fullscreen_links .fullscreen_links-link a,
.fullscreen_links .fullscreen_links-link-item,
.fullscreen_links a.h2 { color: #091D1E !important; opacity: 1 !important; }
.fullscreen_links .fullscreen_links-image { position: absolute !important; right: 40px !important; top: 50% !important; transform: translateY(-50%) !important; width: 300px !important; z-index: 2; }
.fullscreen_links .fullscreen_links-image figure { margin: 0 !important; }
.fullscreen_links .fullscreen_links-image img { width: 100% !important; height: auto !important; display: block !important; opacity: 1 !important; clip-path: none !important; }
.fullscreen_links-content { position: relative; z-index: 3; }

/* v27：fullscreen_links 图片右对齐（清除 left:0 冲突） */
.fullscreen_links .fullscreen_links-image { left: auto !important; bottom: auto !important; right: 48px !important; top: 50% !important; }
.fullscreen_links .fullscreen_links-link-item { color: #091D1E !important; -webkit-text-fill-color: #091D1E !important; }

/* v28：彻底清除原版混合模式/渐变遮罩/透明度 */
.fullscreen_links, .fullscreen_links * { mix-blend-mode: normal !important; filter: none !important; backdrop-filter: none !important; }
.fullscreen_links .fullscreen_links-content, .fullscreen_links .fullscreen_links-content * { opacity: 1 !important; }
.fullscreen_links a, .fullscreen_links a:link, .fullscreen_links a:visited, .fullscreen_links .h2 { color: #091D1E !important; -webkit-text-fill-color: #091D1E !important; background: none !important; }
.fullscreen_links-image, .fullscreen_links-image figure, .fullscreen_links-image figure * { background: none !important; background-image: none !important; box-shadow: none !important; opacity: 1 !important; }
.fullscreen_links-image img { display: block !important; opacity: 1 !important; mix-blend-mode: normal !important; }
.fullscreen_links .position-relative::before, .fullscreen_links .position-relative::after,
.fullscreen_links-image::before, .fullscreen_links-image::after { display: none !important; content: none !important; }

/* v29：菜单在红框范围内均分铺满（15.6% → 91.2%） */
.site-header .header-nav { left: 15.6% !important; width: 75.6% !important; right: auto !important; }
.site-header .header { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; width: 100% !important; }
.site-header .menu-item { padding-left: 0 !important; text-align: left; }
.site-header .menu-item > a { font-size: 13px !important; letter-spacing: 1.3px !important; }

/* v30：菜单跨度对齐参考（18.7%→86%）+ 首屏三行大标题 */
.site-header .header-nav { left: 18.7% !important; width: 67.3% !important; right: auto !important; }
.site-header .menu-item > a { font-size: 13px !important; letter-spacing: 1.4px !important; }
.hero-copy { position: absolute; right: 90px; top: 50%; transform: translateY(-42%); z-index: 3; text-align: right; }
.hero-slogan { font-family: 'Beausite Classic', serif; font-weight: 400; color: #FFFFFF; font-size: clamp(48px, 5.6vw, 108px); line-height: 1.32; letter-spacing: 0; margin: 0; }
.hero-slogan span { display: block; }
@media (max-width: 900px) {
  .hero-copy { right: 24px; }
  .hero-slogan { font-size: clamp(34px, 9vw, 56px); }
}

/* v31：修复 reveal 动画导致图片发白（统一可见） */
.rv, .rv.in-view, .proj-card, .person, .ps-card, .ps-person { opacity: 1 !important; transform: none !important; transition: none !important; }

/* v32：contact/careers 页背景与文字可见性 */
body[data-page="contact"] .sec, body[data-page="careers"] .sec,
body[data-page="about"] .sec, body[data-page="people"] .sec,
body[data-page="perspectives"] .sec, body[data-page="projects"] .sec { background: #F3EEEA !important; }
body:not([data-page="home"]) .sec * , body:not([data-page="home"]) .page-hero * { opacity: 1 !important; }
body:not([data-page="home"]) .sec { color: #091D1E; }
body[data-page="contact"] .sec, body[data-page="careers"] .sec, body[data-page="about"] .sec { padding-top: 150px !important; }

/* ---------- v33：项目页全屏大图序列（复刻 rockwellgroup architecture-and-interiors） ---------- */
.rs-list { margin-top: 10px; }
.rs-item { display: block; position: relative; height: 100vh; overflow: hidden; background: #091D1E; }
.rs-item .rs-img { position: absolute; inset: 0; }
.rs-item .rs-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.4s cubic-bezier(.2,.6,.2,1); }
.rs-item:hover .rs-img img { transform: scale(1.035); }
.rs-meta { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); text-align: center; color: #fff; z-index: 2; width: 80%; }
.rs-name { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(24px, 3vw, 46px); font-weight: 400; line-height: 1.2; text-shadow: 0 2px 30px rgba(0,0,0,.35); }
.rs-loc { margin-top: 10px; font-size: 14px; letter-spacing: .14em; color: rgba(255,255,255,.85); text-shadow: 0 1px 16px rgba(0,0,0,.4); }
.rs-idx { position: absolute; right: 34px; bottom: 30px; font-size: 12px; letter-spacing: .2em; color: rgba(255,255,255,.7); z-index: 2; }
.rs-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.04) 40%, rgba(0,0,0,.28)); z-index: 1; }
.rs-item:hover::after { background: linear-gradient(180deg, rgba(0,0,0,.26), rgba(0,0,0,.08) 40%, rgba(0,0,0,.34)); }
@media (max-width: 900px) { .rs-item { height: 70vh; } }

/* v34：项目名/地点字号对齐 rockwell（小字居中） */
.rs-name { font-size: clamp(20px, 2vw, 32px) !important; letter-spacing: .02em; }
.rs-loc { font-size: 13px !important; letter-spacing: .16em; }

/* ---------- v35：项目详情页（rockwell 版式） ---------- */
.pd-hero figure { margin: 0; height: 92vh; overflow: hidden; }
.pd-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-head { padding: clamp(46px, 7vh, 90px) 0 clamp(30px, 5vh, 60px); }
.pd-title { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(38px, 5.4vw, 84px); font-weight: 400; line-height: 1.06; }
.pd-loc { margin-top: 14px; font-size: 14px; letter-spacing: .18em; text-transform: uppercase; color: #6B7975; }
.pd-cat { margin-top: 6px; font-size: 13px; letter-spacing: .12em; color: #6B7975; }
.pd-lead { margin-top: 34px; font-size: clamp(15px, 1.4vw, 19px); line-height: 1.85; color: #4a4f4c; }
.pd-meta { padding: 26px 0 40px; border-top: 1px solid rgba(9,29,30,.12); border-bottom: 1px solid rgba(9,29,30,.12); }
.pd-meta-row { row-gap: 18px; }
.pd-meta-label { font-size: 10.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #6B7975; margin-bottom: 5px; }
.pd-meta-val { font-size: 14px; color: #091D1E; }
.pd-seq .row { margin-bottom: clamp(20px, 3.6vh, 44px); }
.pd-para p { font-size: clamp(16px, 1.6vw, 21px); line-height: 1.9; color: #2c3230; margin: clamp(26px, 4vh, 48px) 0; }
.pd-wide figure { position: relative; margin: 0; overflow: hidden; }
.pd-wide img { width: 100%; height: auto; display: block; }
.pd-wide figcaption { position: absolute; left: 28px; bottom: 24px; font-size: 12px; letter-spacing: .14em; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.5); }
.pd-duo figure { margin: 0; overflow: hidden; }
.pd-duo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-quote { padding: clamp(60px, 10vh, 130px) 0; border-top: 1px solid rgba(9,29,30,.12); }
.pd-quote blockquote { margin: 0; font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(24px, 2.8vw, 42px); line-height: 1.45; color: #091D1E; }
.pd-quote-by { margin-top: 18px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #6B7975; }
.pd-more { padding: clamp(50px, 8vh, 100px) 0; border-top: 1px solid rgba(9,29,30,.12); }
.pd-more-label { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #6B7975; margin-bottom: 22px; }
.pd-more-card { display: block; }
.pd-more-img { overflow: hidden; aspect-ratio: 4 / 3; }
.pd-more-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s; }
.pd-more-card:hover .pd-more-img img { transform: scale(1.04); }
.pd-more-name { margin-top: 10px; font-size: 15px; font-weight: 500; color: #091D1E; }

/* v36：项目详情页背景与区块可见性 */
body[data-page="project"], body[data-page="project"] .pd-head, body[data-page="project"] .pd-seq, body[data-page="project"] .pd-quote, body[data-page="project"] .pd-more { background: #F3EEEA !important; }
body[data-page="project"] .pd-meta { background: #F3EEEA !important; }

/* ---------- v37：项目详情页按 rockwell 实测像素重排 ---------- */
body[data-page="project"] { background: #F3EEEA !important; font-family: 'Beausite Slick', 'Beausite Classic', -apple-system, sans-serif; }
.pd-close { position: fixed; top: 26px; right: 30px; z-index: 420; display: flex; align-items: baseline; gap: 8px; background: transparent; border: 0; color: #fff; cursor: pointer; padding: 6px 10px; }
.pd-close span { font-size: 14px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.pd-close i { font-style: normal; font-size: 12px; letter-spacing: .1em; opacity: .8; }
.pd-close:hover span { color: #c9a86a; }
.pd-hero { position: relative; height: 92vh; overflow: hidden; }
.pd-hero figure { margin: 0; height: 100%; }
.pd-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-hero::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.18); }
.pd-hero-txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; text-align: center; z-index: 2; padding: 0 20px; }
.pd-hero-txt h1 { font-family: 'Beausite Slick', sans-serif; font-size: clamp(26px, 3.2vw, 40px); font-weight: 500; letter-spacing: .01em; margin: 0; line-height: 1.3; }
.pd-hero-txt p { margin: 6px 0 0; font-size: clamp(20px, 2.6vw, 34px); font-weight: 500; opacity: .95; letter-spacing: .01em; }
/* 简介两栏：左类别 + 右描述（rockwell: x20 / x416, 904 宽） */
.pd-intro { display: grid; grid-template-columns: 396px 1fr; gap: 0; padding: 56px 20px 40px; max-width: 1585px; margin: 0 auto; }
.pd-intro-cat { font-size: 18px; line-height: 1.4; color: #6B7975; padding-top: 2px; }
.pd-intro-desc { font-size: 18px; line-height: 1.4; color: #2c3230; max-width: 904px; }
/* 元信息 */
.pd-meta { border-top: 1px solid rgba(9,29,30,.12); border-bottom: 1px solid rgba(9,29,30,.12); padding: 26px 20px; max-width: 1585px; margin: 0 auto; }
.pd-meta-row { display: flex; flex-wrap: wrap; gap: 34px; }
.pd-meta-cell { min-width: 200px; }
.pd-meta-wide { flex: 1 1 320px; }
.pd-meta-label { font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #6B7975; margin-bottom: 5px; }
.pd-meta-val { font-size: 16px; color: #091D1E; line-height: 1.4; }
/* 正文：左窄栏 662px（rockwell 实测 x20 w662） */
.pd-seq { max-width: 1585px; margin: 0 auto; padding: 0 20px; }
.pd-para { padding-left: 20px; max-width: 682px; }
.pd-para p { font-size: 18px; line-height: 1.4; color: #2c3230; margin: 44px 0; }
/* 全宽图 + 图注（叠在图上左下） */
.pd-wide { position: relative; margin: 0 0 44px; overflow: hidden; }
.pd-wide img { width: 100%; height: auto; display: block; }
.pd-wide figcaption { position: absolute; left: 24px; bottom: 20px; font-size: 15px; color: #fff; text-shadow: 0 1px 14px rgba(0,0,0,.5); }
/* 双列图组（7:5，左高右矮） */
.pd-duo { display: grid; grid-template-columns: 7fr 5fr; gap: 0; margin: 0 0 44px; align-items: start; }
.pd-duo figure { margin: 0; overflow: hidden; }
.pd-duo figure:first-child img { width: 100%; height: auto; display: block; }
.pd-duo figure:last-child img { width: 100%; height: auto; display: block; padding-top: 0; }
/* 引语：右侧 772px 起（rockwell 实测 x416 w772, 24px/500） */
.pd-quote { max-width: 1585px; margin: 0 auto; padding: 90px 20px 90px 436px; border-top: 1px solid rgba(9,29,30,.12); }
.pd-quote blockquote { margin: 0; font-size: clamp(20px, 1.6vw, 26px); line-height: 1.35; color: #091D1E; font-weight: 500; max-width: 772px; }
.pd-quote-by { margin-top: 18px; font-size: 16px; color: #6B7975; }
/* 更多项目 */
.pd-more { max-width: 1585px; margin: 0 auto; padding: 60px 20px 100px; border-top: 1px solid rgba(9,29,30,.12); }
.pd-more-label { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #6B7975; margin-bottom: 24px; }
.pd-more-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pd-more-img { aspect-ratio: 4 / 3; overflow: hidden; }
.pd-more-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s; }
.pd-more-card:hover .pd-more-img img { transform: scale(1.04); }
.pd-more-name { margin-top: 10px; font-size: 15px; color: #091D1E; }
@media (max-width: 900px) {
  .pd-intro { grid-template-columns: 1fr; gap: 16px; }
  .pd-duo { grid-template-columns: 1fr; gap: 14px; }
  .pd-quote { padding-left: 20px; }
}

/* v38：详情页隐藏搜索图标（Close 独立右上，同 rockwell） */
body[data-page="project"] .search-btn { display: none !important; }
body[data-page="project"] .pd-close { right: 28px !important; top: 30px !important; }

/* ---------- v39：项目详情页无顶栏，仅悬浮退出键（rockwell 式沉浸） ---------- */
body[data-page="project"] .site-header { display: none !important; }
body[data-page="project"] .pd-hero { height: 100vh !important; }
body[data-page="project"] .pd-intro { background: #F3EEEA !important; }
/* 悬浮退出键：圆形、半透明底、白色 ✕ */
.pd-close { position: fixed !important; top: 26px !important; right: 26px !important; z-index: 500 !important;
  width: 56px; height: 56px; border-radius: 50%; border: 1px solid rgba(255,255,255,.45);
  background: rgba(9,29,30,.38); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  display: flex !important; align-items: center; justify-content: center; cursor: pointer;
  color: #fff; font-size: 20px; line-height: 1; transition: all .3s; padding: 0; }
.pd-close span { display: none; }
.pd-close i { font-style: normal; font-size: 20px; }
.pd-close::after { content: "✕"; font-size: 20px; }
.pd-close:hover { background: #FBFBF9; color: #091D1E; border-color: #FBFBF9; }
body[data-page="project"] .pd-quote { padding-left: 436px; }

/* v40：退出键只保留 ✕ */
.pd-close i { display: none !important; }
.pd-close { font-size: 0 !important; }
.pd-close::after { font-size: 22px !important; }

/* ---------- v41：专长 / 专家 / 传承 / 工作室详情 ---------- */
.xl-title { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(48px, 8vw, 120px); font-weight: 400; line-height: 1.02; }
.xl-lead { margin-top: 22px; font-size: clamp(15px, 1.4vw, 19px); line-height: 1.8; color: #4a4f4c; max-width: 720px; }
/* 专长行 */
.exp-row { display: grid; grid-template-columns: 90px 1fr 1.4fr; gap: 20px; padding: 34px 0; border-top: 1px solid rgba(9,29,30,.12); align-items: start; }
.exp-idx { font-size: 12px; letter-spacing: .2em; color: #6B7975; padding-top: 10px; }
.exp-name h2 { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(26px, 3vw, 44px); font-weight: 400; }
.exp-desc p { font-size: 15px; line-height: 1.8; color: #4a4f4c; }
.exp-proj { margin-top: 12px; display: flex; gap: 16px; flex-wrap: wrap; }
.exp-proj a { font-size: 13px; color: #091D1E; border-bottom: 1px solid rgba(9,29,30,.25); padding-bottom: 2px; }
.exp-proj a:hover { color: #6B7975; }
/* 专家卡 */
.spec-group { margin-bottom: 40px; }
.spec-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 2px; background: rgba(9,29,30,.1); }
.spec-card { background: #F3EEEA; padding: 28px 24px; }
.spec-card h3 { font-family: var(--f-title, 'Beausite Classic', serif); font-size: 24px; font-weight: 400; }
.spec-card p { margin-top: 10px; font-size: 14px; line-height: 1.75; color: #4a4f4c; min-height: 66px; }
.spec-card .btn { margin-top: 14px; display: inline-block; border: 1px solid #091D1E; padding: 9px 22px; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #091D1E; border-radius: 999px; }
.spec-card .btn:hover { background: #091D1E; color: #FBFBF9; }
/* 时间线 */
.timeline { border-top: 1px solid rgba(9,29,30,.12); }
.tl-row { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 30px 0; border-bottom: 1px solid rgba(9,29,30,.1); }
.tl-year { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(28px, 3vw, 44px); color: #6B7975; }
.tl-body h3 { font-size: 19px; font-weight: 600; }
.tl-body p { margin-top: 8px; font-size: 15px; line-height: 1.8; color: #4a4f4c; }
@media (max-width: 900px) { .exp-row { grid-template-columns: 1fr; } .tl-row { grid-template-columns: 1fr; } }

/* v42：所有内页统一米白背景 + 顶部留出固定顶栏高度 */
body:not([data-page="home"]) .sec,
body:not([data-page="home"]) .sec.scheme-linen,
body:not([data-page="home"]) .sec.scheme-eucalyptus,
body:not([data-page="home"]) .sec.scheme-sage { background: #F3EEEA !important; }
body:not([data-page="home"]) .sec:first-of-type { padding-top: 170px !important; }
body[data-page="studios"] .sec:first-of-type { padding-top: 170px !important; }

/* v43：专家卡网格背景修复（避免空列灰块） */
.spec-grid { background: transparent !important; gap: 1px !important; }
.spec-card { border: 1px solid rgba(9,29,30,.14); }

/* ---------- v44：项目详情页多套模板布局 ---------- */
/* B 双列杂志：简介区变为左窄右宽更夸张，正文两列，图组上下交错 */
body[data-tpl="B"] .pd-hero { height: 72vh !important; }
body[data-tpl="B"] .pd-intro { grid-template-columns: 320px 1fr; padding-top: 70px; }
body[data-tpl="B"] .pd-intro-desc { font-size: 20px; line-height: 1.6; }
body[data-tpl="B"] .pd-para { max-width: 520px; padding-left: 0; margin-left: 20px; }
body[data-tpl="B"] .pd-para p { font-size: 16px; line-height: 1.7; }
body[data-tpl="B"] .pd-duo { grid-template-columns: 1fr 1fr; gap: 14px; }
body[data-tpl="B"] .pd-wide { margin-left: 40%; }
body[data-tpl="B"] .pd-quote { padding-left: 340px; }
/* C 居中画廊：hero 图更小居中，标题在上方，图组全宽居中网格 */
body[data-tpl="C"] .pd-hero { height: 60vh !important; }
body[data-tpl="C"] .pd-hero-txt { top: auto; bottom: 40px; justify-content: flex-end; }
body[data-tpl="C"] .pd-intro { grid-template-columns: 1fr; text-align: center; padding: 50px 10% 30px; }
body[data-tpl="C"] .pd-intro-cat { text-align: center; }
body[data-tpl="C"] .pd-intro-desc { max-width: 720px; margin: 0 auto; }
body[data-tpl="C"] .pd-para { max-width: 720px; margin: 0 auto; padding-left: 0; }
body[data-tpl="C"] .pd-para p { text-align: center; }
body[data-tpl="C"] .pd-duo { grid-template-columns: 1fr 1fr; gap: 20px; }
body[data-tpl="C"] .pd-quote { padding-left: 20px; max-width: 800px; margin: 0 auto; text-align: center; }
body[data-tpl="C"] .pd-quote blockquote { max-width: 800px; }

/* v45：图片定位高亮（后台定位预览时金色描边 + 浮动标签） */
.hl-img { outline: 3px solid #c9a86a !important; outline-offset: -3px; position: relative; animation: hlPulse 1.2s ease-in-out infinite; }
@keyframes hlPulse { 0%,100% { outline-color: #c9a86a; } 50% { outline-color: #ffe8b8; } }

/* v46：自由区块（文本/图片/视频/文件） */
.site-blocks { background: #F3EEEA; padding: 70px 0 !important; }
.blk { margin-bottom: 46px; }
.blk-title { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(26px, 3vw, 42px); margin-bottom: 14px; }
.blk-body { font-size: 16px; line-height: 1.8; color: #2c3230; max-width: 780px; white-space: pre-wrap; }
.blk-media figure { margin: 0; }
.blk-media img { width: 100%; height: auto; display: block; }
.blk-media figcaption { margin-top: 10px; font-size: 12px; color: #6B7975; letter-spacing: .1em; }
.blk-video video { width: 100%; display: block; background: #000; }
.blk-cap { margin-top: 10px; font-size: 13px; color: #6B7975; }
.blk-file a { display: flex; align-items: center; gap: 14px; border: 1px solid rgba(9,29,30,.18); border-radius: 10px; padding: 16px 20px; color: #091D1E; max-width: 520px; }
.blk-file a:hover { border-color: #091D1E; }
.blk-fname { font-weight: 600; }
.blk-fcap { color: #6B7975; font-size: 12px; }

/* v47：项目页 studio 编辑模式（页面内可视化编辑） */
.rs-edit { position: absolute; left: 0; right: 0; top: 0; padding: 10px 20px; background: rgba(201,168,106,.92); color: #14100a; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-align: center; z-index: 5; }
.studio-toolbar { position: fixed; top: 0; left: 0; right: 0; z-index: 999; display: flex; align-items: center; gap: 14px; padding: 10px 20px; background: rgba(9,29,30,.94); color: #fff; font-size: 13px; }
.studio-toolbar span { color: #c9a86a; font-weight: 600; }
.studio-toolbar button { background: #c9a86a; color: #14100a; border: 0; border-radius: 6px; padding: 7px 16px; font-weight: 700; cursor: pointer; }
.studio-toolbar a { color: #fff; text-decoration: none; border: 1px solid rgba(255,255,255,.4); border-radius: 6px; padding: 6px 14px; }
.studio-overlay { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; background: rgba(9,20,20,.55); backdrop-filter: blur(3px); }
.studio-card { width: min(560px, 92vw); max-height: 88vh; overflow: auto; background: #FBFBF9; border-radius: 14px; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.studio-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid rgba(9,29,30,.1); }
.studio-head b { font-size: 15px; }
.studio-close { border: 0; background: transparent; color: #6B7975; cursor: pointer; font-size: 13px; }
.studio-body { padding: 16px 20px; }
.studio-body label { display: block; font-size: 11.5px; color: #6B7975; margin-bottom: 10px; }
.studio-body input, .studio-body textarea { width: 100%; margin-top: 4px; border: 1px solid rgba(9,29,30,.18); border-radius: 6px; padding: 8px 10px; font-size: 13px; font-family: inherit; color: #091D1E; background: #fff; }
.studio-body textarea { min-height: 60px; }
.studio-row { display: flex; gap: 10px; } .studio-row label { flex: 1; }
.studio-cover { position: relative; border-radius: 8px; overflow: hidden; }
.studio-cover img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; background: #eee; }
.studio-cover-ops { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(9,29,30,.35); opacity: 0; transition: .2s; }
.studio-cover:hover .studio-cover-ops { opacity: 1; }
.studio-cover-ops button { background: #fff; border: 0; border-radius: 6px; padding: 8px 16px; font-weight: 700; cursor: pointer; }
.studio-gal { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 10px; }
.studio-gal .sg { position: relative; aspect-ratio: 4/3; border-radius: 6px; overflow: hidden; background: #eee; }
.studio-gal .sg img { width: 100%; height: 100%; object-fit: cover; }
.studio-gal .sg button { position: absolute; top: 3px; right: 3px; background: rgba(0,0,0,.6); color: #fff; border: 0; border-radius: 50%; width: 20px; height: 20px; font-size: 10px; cursor: pointer; }
.studio-gal .sg.add { display: flex; align-items: center; justify-content: center; font-size: 22px; color: #6B7975; cursor: pointer; border: 1px dashed rgba(9,29,30,.25); }
.studio-tpls { display: flex; gap: 8px; margin-bottom: 6px; }
.studio-tpl { flex: 1; border: 1px solid rgba(9,29,30,.2); background: #fff; border-radius: 6px; padding: 9px 4px; font-size: 12px; cursor: pointer; color: #091D1E; }
.studio-tpl.on { background: #091D1E; color: #FBFBF9; border-color: #091D1E; }
.studio-foot { display: flex; gap: 10px; padding: 14px 20px; border-top: 1px solid rgba(9,29,30,.1); }
.studio-save { flex: 1; background: #091D1E; color: #fff; border: 0; border-radius: 8px; padding: 11px; font-weight: 700; cursor: pointer; }
.studio-del { border: 1px solid rgba(200,60,60,.4); color: #b33; background: transparent; border-radius: 8px; padding: 11px 16px; cursor: pointer; }
.studio-toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%); background: #c9a86a; color: #14100a; padding: 10px 22px; border-radius: 8px; font-weight: 700; z-index: 99999; }

/* v48：详情页可视化编辑模式 */
body.studio-on { padding-top: 0 !important; }
body.studio-on .studio-toolbar { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; }
body.studio-on .pd-close { display: none; }
.pd-editable { cursor: pointer; position: relative; }
.pd-editable:hover { outline: 2px dashed #c9a86a; outline-offset: 2px; }
.pd-editable:hover::after { content: "✎"; position: absolute; top: -10px; right: -10px; background: #c9a86a; color: #14100a; border-radius: 50%; width: 20px; height: 20px; font-size: 11px; display: flex; align-items: center; justify-content: center; }
.pd-blocks { background: #F3EEEA; padding: 40px 0 80px !important; }
.pd-blocks-head { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #6B7975; margin-bottom: 20px; }
.blk-ops { display: flex; gap: 8px; margin-bottom: 8px; }
.blk-ops button { border: 1px solid rgba(9,29,30,.2); background: #fff; color: #091D1E; border-radius: 5px; padding: 4px 12px; font-size: 11px; cursor: pointer; }
.blk-ops button:hover { background: #091D1E; color: #fff; }

/* v49：详情页编辑入口按钮 */
.studio-goto { display: inline-flex; align-items: center; justify-content: center; background: #c9a86a; color: #14100a; border-radius: 8px; padding: 11px 16px; font-weight: 700; text-decoration: none; font-size: 13px; }
.studio-goto:hover { filter: brightness(1.06); }

/* v51：批量上传区 */
.studio-batch { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.studio-batch button { border: 1px solid rgba(9,29,30,.2); background: #fff; color: #091D1E; border-radius: 6px; padding: 6px 10px; font-size: 11.5px; cursor: pointer; }
.studio-batch button:hover { background: #091D1E; color: #fff; }
.studio-batch span { font-size: 11px; color: #6B7975; }

/* v52：模块化详情页构建器 */
.pd-sec { position: relative; }
.pd-sec-bar { display: flex; align-items: center; gap: 10px; padding: 6px 16px; background: rgba(9,29,30,.92); color: #fff; font-size: 11.5px; position: sticky; top: 44px; z-index: 200; }
.pd-sec-label { color: #c9a86a; font-weight: 700; letter-spacing: .08em; }
.pd-sec-ops { margin-left: auto; display: flex; gap: 5px; }
.pd-sec-ops button { border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; border-radius: 4px; padding: 2px 8px; font-size: 10.5px; cursor: pointer; }
.pd-sec-ops button:hover { background: #c9a86a; color: #14100a; border-color: #c9a86a; }
.pd-addmenu { position: fixed; top: 52px; left: 50%; transform: translateX(-50%) translateY(-10px); background: #FBFBF9; border: 1px solid rgba(9,29,30,.15); border-radius: 12px; padding: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.25); z-index: 9999; display: none; flex-wrap: wrap; gap: 8px; width: 420px; }
.pd-addmenu.open { display: flex; }
.pd-addmenu b { width: 100%; font-size: 12px; color: #6B7975; letter-spacing: .1em; }
.pd-addmenu button { border: 1px solid rgba(9,29,30,.18); background: #fff; border-radius: 8px; padding: 9px 14px; font-size: 12.5px; cursor: pointer; color: #091D1E; }
.pd-addmenu button:hover { background: #091D1E; color: #fff; }
.pd-text { padding: 60px 0; background: #F3EEEA; }
.pd-text-title { font-family: var(--f-title, 'Beausite Classic', serif); font-size: clamp(28px, 3vw, 44px); margin-bottom: 16px; }
.pd-text-body { font-size: 16px; line-height: 1.85; color: #2c3230; }
.pd-pick-list { max-height: 260px; overflow: auto; border: 1px solid rgba(9,29,30,.12); border-radius: 8px; padding: 8px; }
.pd-pick { display: block; padding: 6px 8px; font-size: 13px; color: #091D1E; }
.pd-pick input { margin-right: 8px; }
.pd-body-wrap, .pd-gal-wrap { max-width: 1585px; margin: 0 auto; padding: 0 20px; }

/* v53：自由画布编辑器 */
body.canvas-mode { background: #E8E8E4; padding-top: 96px; }
body.canvas-mode .site-header, body.canvas-mode .pd-close { display: none !important; }
body.canvas-mode .studio-toolbar { display: flex; }
.cv-toolbar { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; display: flex; align-items: center; gap: 14px; padding: 10px 18px; background: #091D1E; color: #fff; flex-wrap: wrap; }
.cv-title { font-weight: 700; font-size: 13px; color: #c9a86a; }
.cv-tools { display: flex; gap: 6px; }
.cv-tools button { border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; border-radius: 6px; padding: 5px 11px; font-size: 12px; cursor: pointer; }
.cv-tools button:hover { background: #c9a86a; color: #14100a; border-color: #c9a86a; }
.cv-ops { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.cv-ops button { border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; border-radius: 6px; padding: 6px 12px; cursor: pointer; font-size: 12px; }
.cv-ops button.primary { background: #c9a86a; color: #14100a; border-color: #c9a86a; font-weight: 700; }
.cv-ops a { color: #fff; text-decoration: none; font-size: 12px; border: 1px solid rgba(255,255,255,.3); border-radius: 6px; padding: 6px 12px; }
.cv-hint { position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%); background: rgba(9,29,30,.88); color: #fff; font-size: 11.5px; padding: 8px 18px; border-radius: 999px; z-index: 9999; }
.cv-root { position: relative; width: min(1585px, 100%); margin: 0 auto; min-height: 2400px; background: #fff; box-shadow: 0 0 0 1px rgba(9,29,30,.08); }
body.canvas-mode .cv-root { background: #fff; }
body.canvas-render { background: #fff; }
body.canvas-render .site-header, body.canvas-render .pd-close { display: none !important; }
body.canvas-render .cv-root { width: min(1585px, 100%); margin: 0 auto; min-height: 1600px; position: relative; }
.cv-el { position: absolute; overflow: visible; cursor: move; border: 1px dashed transparent; box-sizing: border-box; }
body.canvas-mode .cv-el:hover { border-color: rgba(201,168,106,.7); }
.cv-el.sel { border: 2px solid #c9a86a !important; }
.cv-el img, .cv-el video { pointer-events: none; }
.cv-el video { pointer-events: auto; }
.cv-resize { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; background: #c9a86a; border: 2px solid #fff; border-radius: 50%; cursor: nwse-resize; display: none; }
.cv-el.sel .cv-resize { display: block; }
.cv-del { position: absolute; top: -10px; right: -10px; width: 20px; height: 20px; border-radius: 50%; background: #b33; color: #fff; border: 0; font-size: 10px; cursor: pointer; display: none; }
.cv-el.sel .cv-del { display: block; }
.cv-text-inner:focus { outline: none; }

/* v54：模板页自由编辑层 */
body.free-mode { padding-top: 52px; }
.free-toolbar { position: fixed; top: 0; left: 0; right: 0; z-index: 9999; display: flex; align-items: center; gap: 12px; padding: 10px 18px; background: #091D1E; color: #fff; font-size: 12.5px; }
.free-toolbar span { color: #c9a86a; font-weight: 600; margin-right: auto; }
.free-toolbar button, .free-toolbar a { border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; border-radius: 6px; padding: 6px 12px; font-size: 12px; cursor: pointer; text-decoration: none; }
.free-toolbar button:hover, .free-toolbar a:hover { background: #c9a86a; color: #14100a; }
.free-el { outline: 1px dashed transparent; }
.free-el:hover { outline: 1px dashed rgba(201,168,106,.8); }
.free-el.sel { outline: 2px solid #c9a86a !important; }
.free-resize { position: absolute; right: -6px; bottom: -6px; width: 12px; height: 12px; background: #c9a86a; border: 2px solid #fff; border-radius: 50%; cursor: nwse-resize; display: none; z-index: 10; }
.free-el.sel .free-resize { display: block; }
.free-del { position: absolute; top: -9px; right: -9px; width: 18px; height: 18px; border-radius: 50%; background: #b33; color: #fff; border: 0; font-size: 9px; cursor: pointer; display: none; z-index: 10; }
.free-el.sel .free-del { display: block; }
.free-canvas { max-width: 1585px; margin: 30px auto 80px; padding: 0 20px; }
.free-canvas-label { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: #6B7975; margin-bottom: 10px; }
.free-canvas-add { display: flex; gap: 8px; margin-bottom: 10px; }
.free-canvas-add button { border: 1px solid rgba(9,29,30,.2); background: #fff; border-radius: 6px; padding: 6px 12px; font-size: 12px; cursor: pointer; color: #091D1E; }
.free-canvas-add button:hover { background: #091D1E; color: #fff; }
.free-canvas-body { position: relative; min-height: 900px; background: #fff; border: 1px dashed rgba(9,29,30,.2); border-radius: 8px; overflow: hidden; }
.free-el-abs { position: absolute; cursor: move; }
.free-el-abs:hover { outline: 1px dashed #c9a86a; }

/* ---------- v55：页面构建器 v3 ---------- */
body.b3-mode { margin: 0 !important; padding: 0 !important; background: #171c1c !important; overflow: hidden !important; font: 13px/1.5 "Segoe UI","PingFang SC","Microsoft YaHei",sans-serif !important; }
.b3-bar { position: fixed !important; top: 0; left: 0; right: 0; height: 46px; z-index: 100; display: flex !important; align-items: center; gap: 8px; padding: 0 14px; background: #0d1515; border-bottom: 1px solid rgba(255,255,255,.1); color: #eef2f0; }
.b3-title { font-weight: 700; font-size: 13px; color: #c9a86a; margin-right: auto; }
.b3-bar button, .b3-bar a { border: 1px solid rgba(255,255,255,.18); background: transparent; color: #eef2f0; border-radius: 6px; padding: 5px 11px; font-size: 12px; cursor: pointer; text-decoration: none; }
.b3-bar button:hover, .b3-bar a:hover { border-color: #c9a86a; color: #c9a86a; }
.b3-bar button.primary { background: #c9a86a; color: #14100a; border-color: #c9a86a; font-weight: 700; }
.b3-lib { position: fixed !important; top: 46px; left: 0; bottom: 0; width: 150px; z-index: 90; background: #101818; border-right: 1px solid rgba(255,255,255,.08); padding: 12px 10px; overflow: auto; }
.b3-lib-title { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: #8ba09b; margin-bottom: 10px; }
.b3-lib-item { display: flex !important; align-items: center; gap: 8px; width: 100%; border: 1px solid rgba(255,255,255,.1); background: #172222 !important; color: #eef2f0 !important; border-radius: 7px; padding: 8px 10px; margin-bottom: 7px; cursor: pointer; font-size: 12px; text-align: left; }
.b3-lib-item:hover { border-color: #c9a86a; color: #c9a86a !important; }
.b3-lib-item .ic { width: 20px; text-align: center; color: #c9a86a; font-weight: 700; }
.b3-canvas-wrap { position: fixed !important; top: 46px; left: 150px; right: 310px; bottom: 0; overflow: auto; background: #202828; }
.b3-canvas { position: relative; width: 1440px; margin: 30px auto; background: #ffffff; box-shadow: 0 0 40px rgba(0,0,0,.4); }
.b3-node { position: absolute; }
.b3-node:hover { outline: 1px dashed rgba(201,168,106,.75); outline-offset: 1px; }
.b3-node.sel { outline: 2px solid #c9a86a; outline-offset: 1px; }
.b3-node .bn { overflow: hidden; width: 100%; height: 100%; }
.b3-frame { position: absolute; pointer-events: none; z-index: 999; display: none; }
.b3-frame .b3-rh { position: absolute; width: 10px; height: 10px; background: #fff; border: 1.5px solid #c9a86a; border-radius: 2px; pointer-events: all; }
.b3-rh-n { top: -5px; left: 50%; margin-left: -5px; cursor: ns-resize; }
.b3-rh-s { bottom: -5px; left: 50%; margin-left: -5px; cursor: ns-resize; }
.b3-rh-e { right: -5px; top: 50%; margin-top: -5px; cursor: ew-resize; }
.b3-rh-w { left: -5px; top: 50%; margin-top: -5px; cursor: ew-resize; }
.b3-rh-ne { top: -5px; right: -5px; cursor: nesw-resize; }
.b3-rh-nw { top: -5px; left: -5px; cursor: nwse-resize; }
.b3-rh-se { bottom: -5px; right: -5px; cursor: nwse-resize; }
.b3-rh-sw { bottom: -5px; left: -5px; cursor: nesw-resize; }
.b3-panel { position: fixed !important; top: 46px; right: 0; bottom: 0; width: 310px; z-index: 90; background: #101818; border-left: 1px solid rgba(255,255,255,.08); display: flex !important; flex-direction: column; }
.b3-tabs { display: flex !important; border-bottom: 1px solid rgba(255,255,255,.08); }
.b3-tabs button { flex: 1; background: transparent !important; border: 0; color: #8ba09b !important; padding: 10px; font-size: 12.5px; cursor: pointer; border-bottom: 2px solid transparent; }
.b3-tabs button.on { color: #c9a86a !important; border-bottom-color: #c9a86a; font-weight: 700; }
.b3-tab-body { flex: 1; overflow: auto; padding: 14px; }
.b3-empty { color: #8ba09b; font-size: 12px; text-align: center; padding: 30px 0; }
.b3-pn-title { font-size: 13px; font-weight: 700; color: #c9a86a; margin-bottom: 12px; }
.b3-field { margin-bottom: 10px; }
.b3-field label { display: block; font-size: 11px; color: #8ba09b; margin-bottom: 4px; }
.b3-field input, .b3-field textarea, .b3-field select { width: 100%; background: #172222 !important; border: 1px solid rgba(255,255,255,.12); color: #eef2f0 !important; border-radius: 6px; padding: 7px 9px; font-size: 12.5px; font-family: inherit; }
.b3-field textarea { min-height: 70px; resize: vertical; }
.b3-field input:focus, .b3-field textarea:focus { outline: none; border-color: #c9a86a; }
.b3-row { display: flex !important; gap: 8px; }
.b3-row .b3-field { flex: 1; }
.b3-btn { border: 1px solid rgba(255,255,255,.15); background: #172222 !important; color: #eef2f0 !important; border-radius: 6px; padding: 6px 12px; font-size: 12px; cursor: pointer; margin-right: 6px; }
.b3-btn:hover { border-color: #c9a86a; color: #c9a86a !important; }
.b3-btn.danger { color: #ff8a8a !important; }
.b3-ops { display: flex !important; gap: 6px; margin-top: 4px; }
.b3-common { margin-top: 16px; border-top: 1px solid rgba(255,255,255,.08); padding-top: 12px; }
.b3-gal-list { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 8px; }
.b3-gal-item { position: relative; aspect-ratio: 1; border-radius: 5px; overflow: hidden; }
.b3-gal-item img { width: 100%; height: 100%; object-fit: cover; }
.b3-gal-item button { position: absolute; top: 2px; right: 2px; background: rgba(0,0,0,.6); color: #fff; border: 0; border-radius: 50%; width: 17px; height: 17px; font-size: 9px; cursor: pointer; }
.b3-pick { max-height: 220px; overflow: auto; }
.b3-pick label { display: block; padding: 5px 6px; font-size: 12.5px; color: #eef2f0; }
.b3-layer { display: flex !important; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid rgba(255,255,255,.08); border-radius: 6px; margin-bottom: 6px; cursor: pointer; font-size: 12px; color: #eef2f0; background: #141d1d; }
.b3-layer:hover { border-color: #c9a86a; }
.b3-layer .ic { color: #c9a86a; font-weight: 700; width: 18px; }
.b3-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); background: #c9a86a; color: #14100a; padding: 9px 20px; border-radius: 8px; font-weight: 700; font-size: 13px; z-index: 9999; animation: b3fade 1.6s forwards; }
@keyframes b3fade { 0% { opacity: 0; } 10% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } }

/* b3 组件渲染微调 */
.b3-canvas .bn-heading, .b3-canvas .bn-text { width: 100%; }
.b3-canvas .bn-quote-t { width: 100%; }

/* ---------- v56：Elementor 风格页面构建器 ---------- */
body.el-mode { margin: 0 !important; padding: 0 !important; background: #1f2124 !important; overflow: hidden !important; font: 13px/1.5 "Segoe UI","PingFang SC","Microsoft YaHei",sans-serif !important; color: #d5d8dc; }
.el-topbar { position: fixed !important; top: 0; left: 0; right: 0; height: 48px; z-index: 1000; display: flex !important; align-items: center; gap: 14px; padding: 0 16px; background: #0c0d0e; border-bottom: 1px solid #2a2d31; }
.el-logo { font-weight: 700; font-size: 14px; color: #fff; }
.el-logo b { color: #92003b; }
.el-logo span { color: #8a8f98; font-weight: 400; font-size: 12px; }
.el-devices { display: flex; gap: 2px; background: #1f2124; border-radius: 6px; padding: 3px; }
.el-devices button { background: transparent; border: 0; color: #8a8f98; padding: 5px 12px; border-radius: 4px; font-size: 12px; cursor: pointer; }
.el-devices button.on { background: #1f91f3; color: #fff; }
.el-top-actions { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.el-top-actions button { background: transparent; border: 1px solid #2a2d31; color: #d5d8dc; padding: 6px 12px; border-radius: 5px; font-size: 12px; cursor: pointer; }
.el-top-actions button:hover { border-color: #1f91f3; color: #1f91f3; }
#elPublish { background: #92003b !important; border-color: #92003b !important; color: #fff !important; font-weight: 700; }
.el-panel { position: fixed !important; top: 48px; left: 0; bottom: 0; width: 340px; z-index: 900; background: #1f2124; border-right: 1px solid #2a2d31; display: flex !important; flex-direction: column; }
.el-panel-tabs { display: flex !important; border-bottom: 1px solid #2a2d31; }
.el-panel-tabs button { flex: 1; background: transparent; border: 0; color: #8a8f98; padding: 12px 8px; font-size: 12.5px; cursor: pointer; border-bottom: 2px solid transparent; }
.el-panel-tabs button.on { color: #1f91f3; border-bottom-color: #1f91f3; font-weight: 700; }
.el-ptab { flex: 1; overflow: auto; display: flex; flex-direction: column; }
.el-search { padding: 10px 12px; border-bottom: 1px solid #2a2d31; }
.el-search input { width: 100%; background: #0c0d0e; border: 1px solid #2a2d31; color: #d5d8dc; border-radius: 5px; padding: 8px 10px; font-size: 12.5px; }
.el-search input:focus { outline: none; border-color: #1f91f3; }
.el-cat { font-size: 10.5px; letter-spacing: .18em; text-transform: uppercase; color: #6a717b; padding: 12px 12px 6px; }
.el-wgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 0 12px 8px; }
.el-wcard { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 6px; background: #2a2d31; border: 1px solid transparent; border-radius: 6px; color: #d5d8dc; font-size: 11.5px; cursor: grab; text-align: center; }
.el-wcard:hover { border-color: #1f91f3; color: #fff; }
.el-wcard:active { cursor: grabbing; }
.el-wic { font-size: 16px; color: #1f91f3; font-weight: 700; }
.el-panel-foot { padding: 10px 12px; border-top: 1px solid #2a2d31; }
.el-panel-foot button { width: 100%; background: transparent; border: 1px solid #2a2d31; color: #8a8f98; border-radius: 5px; padding: 8px; font-size: 12px; cursor: pointer; }
.el-panel-foot button:hover { border-color: #1f91f3; color: #1f91f3; }
.el-canvas-wrap { position: fixed !important; top: 48px; left: 340px; right: 0; bottom: 0; overflow: auto; background: #2a2d31; display: flex; justify-content: center; align-items: flex-start; padding: 24px 0 60px; }
.el-canvas { position: relative; width: 1440px; background: #fff; box-shadow: 0 0 30px rgba(0,0,0,.4); flex: 0 0 auto; }
.el-node { position: absolute; }
.el-node:hover { outline: 1px dashed rgba(31,145,243,.7); outline-offset: 1px; }
.el-node.sel { outline: 2px solid #1f91f3; outline-offset: 1px; }
.el-node .el-w { overflow: hidden; width: 100%; height: 100%; }
.el-toolbar { position: absolute; top: -30px; right: 0; display: none; background: #1f91f3; border-radius: 5px; overflow: hidden; z-index: 20; }
.el-node.sel .el-toolbar, .el-node:hover .el-toolbar { display: flex; }
.el-toolbar button { background: transparent; border: 0; border-right: 1px solid rgba(255,255,255,.25); color: #fff; padding: 5px 9px; font-size: 12px; cursor: pointer; }
.el-toolbar button:hover { background: rgba(0,0,0,.18); }
.el-frame { position: absolute; pointer-events: none; z-index: 500; display: none; }
.el-frame .el-rh { position: absolute; width: 9px; height: 9px; background: #fff; border: 1.5px solid #1f91f3; border-radius: 2px; pointer-events: all; }
.el-rh-n { top: -5px; left: 50%; margin-left: -4px; cursor: ns-resize; }
.el-rh-s { bottom: -5px; left: 50%; margin-left: -4px; cursor: ns-resize; }
.el-rh-e { right: -5px; top: 50%; margin-top: -4px; cursor: ew-resize; }
.el-rh-w { left: -5px; top: 50%; margin-top: -4px; cursor: ew-resize; }
.el-rh-ne { top: -5px; right: -5px; cursor: nesw-resize; }
.el-rh-nw { top: -5px; left: -5px; cursor: nwse-resize; }
.el-rh-se { bottom: -5px; right: -5px; cursor: nwse-resize; }
.el-rh-sw { bottom: -5px; left: -5px; cursor: nesw-resize; }
.el-drop-line { position: absolute; left: 0; right: 0; height: 2px; background: #1f91f3; z-index: 600; display: none; }
.el-drop-line::before { content: "+"; position: absolute; left: 50%; top: -9px; transform: translateX(-50%); width: 18px; height: 18px; background: #1f91f3; color: #fff; border-radius: 50%; text-align: center; line-height: 18px; font-size: 13px; }
.el-props-head { display: flex !important; align-items: center; gap: 8px; padding: 12px; border-bottom: 1px solid #2a2d31; font-size: 13px; color: #fff; }
.el-props-head b { flex: 1; }
.el-props-head button { background: transparent; border: 0; color: #8a8f98; font-size: 14px; cursor: pointer; }
.el-props-tabs { display: flex !important; border-bottom: 1px solid #2a2d31; }
.el-props-tabs button { flex: 1; background: transparent; border: 0; color: #8a8f98; padding: 10px 4px; font-size: 12px; cursor: pointer; border-bottom: 2px solid transparent; }
.el-props-tabs button.on { color: #1f91f3; border-bottom-color: #1f91f3; font-weight: 700; }
.el-props-body { padding: 14px 12px; overflow: auto; }
.el-field { margin-bottom: 12px; }
.el-field label { display: block; font-size: 11px; color: #8a8f98; margin-bottom: 5px; }
.el-field input, .el-field textarea, .el-field select { width: 100%; background: #0c0d0e; border: 1px solid #2a2d31; color: #d5d8dc; border-radius: 5px; padding: 8px 10px; font-size: 12.5px; font-family: inherit; }
.el-field textarea { min-height: 70px; resize: vertical; }
.el-field input:focus, .el-field textarea:focus, .el-field select:focus { outline: none; border-color: #1f91f3; }
.el-color-wrap { display: flex !important; gap: 8px; align-items: center; }
.el-color-wrap input[type=color] { width: 44px; height: 34px; padding: 2px; }
.el-row2 { display: flex !important; gap: 10px; }
.el-row2 .el-field { flex: 1; }
.el-btn { background: #2a2d31; border: 1px solid #3a3d42; color: #d5d8dc; border-radius: 5px; padding: 7px 12px; font-size: 12px; cursor: pointer; }
.el-btn:hover { border-color: #1f91f3; color: #1f91f3; }
.el-btn.wide { width: 100%; margin-top: 8px; }
.el-gal { display: grid !important; grid-template-columns: repeat(3,1fr); gap: 6px; margin-bottom: 8px; }
.el-gi { position: relative; aspect-ratio: 1; border-radius: 4px; overflow: hidden; }
.el-gi img { width: 100%; height: 100%; object-fit: cover; }
.el-gi button { position: absolute; top: 2px; right: 2px; background: rgba(0,0,0,.65); color: #fff; border: 0; border-radius: 50%; width: 17px; height: 17px; font-size: 9px; cursor: pointer; }
.el-pick { max-height: 220px; overflow: auto; }
.el-pick label { display: block; padding: 6px; font-size: 12.5px; color: #d5d8dc; }
.el-navrow { display: flex !important; align-items: center; gap: 8px; padding: 8px 12px; font-size: 12.5px; color: #d5d8dc; cursor: pointer; border-bottom: 1px solid #26282b; }
.el-navrow:hover { background: #2a2d31; color: #fff; }
.el-navrow.hidden { opacity: .45; }
.el-empty { color: #6a717b; font-size: 12px; text-align: center; padding: 30px 0; }
.el-ph { display: flex; align-items: center; justify-content: center; border: 2px dashed #c9cdd2; color: #8a8f98; font-size: 13px; min-height: 120px; }
.el-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%); background: #1f91f3; color: #fff; padding: 9px 20px; border-radius: 6px; font-weight: 600; font-size: 13px; z-index: 9999; animation: elfade 1.7s forwards; }
@keyframes elfade { 0% { opacity: 0; } 8% { opacity: 1; } 82% { opacity: 1; } 100% { opacity: 0; } }

/* v57：画布高度自适应（消除底部大块空白） */
.el-canvas { min-height: 600px; }
.el-canvas-wrap { align-items: flex-start; }

/* 构建器退出按钮 */
.el-top-actions .el-exit { display: inline-flex; align-items: center; border: 1px solid #2a2d31; color: #d5d8dc; border-radius: 5px; padding: 6px 12px; font-size: 12px; text-decoration: none; }
.el-top-actions .el-exit:hover { border-color: #1f91f3; color: #1f91f3; }

/* v58：构建器交互优化 */
.el-node { cursor: move !important; }
.el-node:active { cursor: grabbing !important; }
.el-node .el-w video { pointer-events: none !important; }   /* 编辑态视频可拖动，预览态正常播放 */
.el-node .el-w img { pointer-events: none !important; }
.el-w-divider { min-height: 20px; }
.el-height-handle { position: absolute; left: 0; right: 0; bottom: 0; height: 26px; background: repeating-linear-gradient(90deg, rgba(31,145,243,.12), rgba(31,145,243,.12) 8px, transparent 8px, transparent 16px); border-top: 2px solid #1f91f3; color: #1f91f3; font-size: 11px; display: flex; align-items: center; justify-content: center; cursor: ns-resize; letter-spacing: .1em; z-index: 30; }
.el-height-handle:hover { background: rgba(31,145,243,.2); }

/* v59：项目编辑模式隐藏前台导航（防止误点跳前台） */
body.studio-mode .site-header,
body.studio-mode .site-footer,
body.studio-mode .search-overlay { display: none !important; }
body.studio-mode { padding-top: 62px !important; }
body.studio-mode .studio-toolbar { position: fixed !important; top: 0; left: 0; right: 0; z-index: 9999; }
body.studio-mode .page-hero { padding-top: 20px !important; }

/* v60：模板选择卡片 */
.tpl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tpl-card { border: 1px solid rgba(9,29,30,.15); border-radius: 10px; padding: 10px; cursor: pointer; transition: .18s; background: #fff; }
.tpl-card:hover { border-color: #c9a86a; box-shadow: 0 8px 24px rgba(9,29,30,.12); transform: translateY(-2px); }
.tpl-thumb { height: 110px; border-radius: 6px; margin-bottom: 10px; background: #eee; position: relative; overflow: hidden; }
.tpl-thumb.tpl-A { background: linear-gradient(160deg, #cfd8d4 0%, #8fa39c 100%); }
.tpl-thumb.tpl-A::after { content: ""; position: absolute; left: 12px; bottom: 12px; width: 60%; height: 22%; background: rgba(255,255,255,.85); border-radius: 3px; }
.tpl-thumb.tpl-B { background: linear-gradient(90deg, #e7e2dc 0 48%, #c9c1b8 48% 100%); }
.tpl-thumb.tpl-B::after { content: ""; position: absolute; left: 10px; top: 14px; width: 38%; height: 62%; background: rgba(255,255,255,.8); border-radius: 3px; }
.tpl-thumb.tpl-C { background: #efece7; display: flex; align-items: center; justify-content: center; }
.tpl-thumb.tpl-C::after { content: ""; width: 56%; height: 56%; background: #b9c4be; border-radius: 3px; }
.tpl-name { font-size: 13px; font-weight: 700; color: #091D1E; margin-bottom: 4px; }
.tpl-name span { font-size: 10px; background: #c9a86a; color: #14100a; border-radius: 3px; padding: 1px 5px; margin-left: 4px; }
.tpl-desc { font-size: 11.5px; color: #6B7975; line-height: 1.5; }
/* v60：编辑器后台左侧操作栏按钮风格 */
.ops-side .btn { display: block; }

/* v61：可视化编辑器菜单卡片 */
.pop { max-height: 78vh; overflow: auto; }
.mgroup { margin: 10px 0; border-top: 1px solid #eee; padding-top: 8px; }
.mgt { font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: #6B7975; margin-bottom: 6px; }
.mrow { display: flex; gap: 6px; margin-bottom: 6px; }
.mrow input { flex: 1; }
.mgo { width: 30px; border: 1px solid #d8dcd9; background: #fff; border-radius: 6px; cursor: pointer; color: #091D1E; font-size: 13px; }
.mgo:hover { background: #091D1E; color: #fff; border-color: #091D1E; }

/* v62：导航四项均分顶部 */
.site-header .header-nav { flex: 1 1 auto !important; }
.site-header .header-nav ul.header { display: flex !important; width: 100% !important; justify-content: space-between !important; align-items: center; }
.site-header .header-nav ul.header > li.menu-item { flex: 1 1 0 !important; text-align: center !important; margin: 0 !important; position: relative; }
.site-header .header-nav ul.header > li.menu-item > a { display: block; width: 100%; text-align: center; }

/* v63：菜单编辑器增删控件 */
.mgt { display: flex !important; align-items: center; gap: 5px; margin-bottom: 6px; }
.mtinput, .mtitle { flex: 1; font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; color: #6B7975 !important; border: 1px solid transparent !important; background: transparent !important; padding: 3px 4px !important; }
.mtitle:hover, .mtitle:focus { border-color: #d8dcd9 !important; background: #fff !important; }
.mico { width: 24px; height: 24px; border: 1px solid #d8dcd9; background: #fff; border-radius: 5px; cursor: pointer; font-size: 12px; color: #091D1E; line-height: 1; }
.mico:hover { background: #091D1E; color: #fff; border-color: #091D1E; }
.mico.del:hover { background: #b33; border-color: #b33; }
.maddgrp { width: 100%; border: 1px dashed #c9c9c4; background: #fff; color: #6B7975; border-radius: 7px; padding: 8px; font-size: 12px; cursor: pointer; margin: 6px 0 10px; }
.maddgrp:hover { border-color: #c9a86a; color: #091D1E; }
.mcount { font-size: 10px; color: #a8b0ac; margin: -2px 0 8px; }

/* v64：下拉面板居中对齐所属菜单项 */
.site-header .header-nav .nav-drop { position: relative !important; }
.site-header .header-nav .nav-drop > .drop-menu {
  left: 50% !important;
  transform: translateX(-50%) !important;
}
.site-header .header-nav .nav-drop.open > .drop-menu {
  transform: translateX(-50%) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* v65：导航排序按钮 */
.pm-row button[data-up], .pm-row button[data-down] { width: 22px; height: 22px; font-size: 11px; color: #6B7975; }
.pm-row button[data-up]:hover, .pm-row button[data-down]:hover { background: #c9a86a; color: #14100a; border-color: #c9a86a; }

/* v66：LOGO 回首页可点击提示 */
.site-header .logo a { cursor: pointer; }
.site-header .logo a:hover .logo-word { opacity: .7; }
.site-header .logo a { transition: opacity .2s; }

/* 首页入口样式 */
.pm-row.pm-home { border-bottom: 1px solid #eee; margin-bottom: 4px; padding-bottom: 8px; }
.pm-row.pm-home .tag.home { background: #091D1E; color: #fff; }

/* v67：项目/产品详情沉浸模式——隐藏导航与页脚，仅英文 Close 退出（对齐 Rockwell） */
body[data-page="project"] .site-header,
body[data-page="product"] .site-header { display: none !important; }
body[data-page="project"] .site-footer,
body[data-page="product"] .site-footer { display: none !important; }

/* 退出按钮：参考 Rockwell 右上角透明文字 Close（非圆形✕） */
.pd-close {
  position: fixed !important;
  top: 20px !important;
  right: 50px !important;
  z-index: 500 !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  cursor: pointer !important;
  transition: color .3s cubic-bezier(.4,0,.2,1) !important;
}
.pd-close span { display: inline !important; font-size: 16px !important; letter-spacing: normal !important; text-transform: none !important; }
.pd-close i { display: none !important; }
.pd-close::after { content: none !important; }
.pd-close:hover { color: rgba(255,255,255,.65) !important; background: transparent !important; }
/* 浅色正文区域：文字切换为墨绿，保证可读 */
.pd-close.on-light { color: #091D1E !important; }
.pd-close.on-light:hover { color: rgba(9,29,30,.6) !important; }

/* ============================================================
   v68：专长详情落地页（HBA expertise 单领域长页，HCD 外壳）
   ============================================================ */
.ed-head { margin-bottom: 40px; }
.ed-head h2 { font-family: var(--f-title); font-size: clamp(28px, 3.6vw, 46px); font-weight: 500; margin: 10px 0 0; }

/* 1 全屏 hero */
.ed-hero { position: relative; height: 100vh; min-height: 560px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.ed-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ed-hero-overlay { position: absolute; inset: 0; background: rgba(9,29,30,.42); z-index: 1; }
.ed-hero-copy { position: relative; z-index: 2; text-align: center; color: #fff; padding: 0 24px; }
.ed-hero-logo { width: 120px; height: auto; margin-bottom: 26px; object-fit: contain; }
.ed-kicker { font-size: 12px; letter-spacing: .28em; text-transform: uppercase; opacity: .82; margin-bottom: 14px; }
.ed-title { font-family: var(--f-title); font-size: clamp(40px, 7vw, 88px); font-weight: 500; line-height: 1.05; margin: 0; }

/* 2 介绍 */
.ed-intro { padding-top: 110px; padding-bottom: 90px; }
.ed-intro-text p { font-size: 17px; line-height: 1.75; margin: 0 0 22px; color: #2a3a3b; }
.ed-intro-text p:first-child { font-family: var(--f-title); font-size: clamp(22px, 2.6vw, 30px); line-height: 1.35; color: var(--c-ink); font-weight: 500; }
.ed-intro-media video { width: 100%; height: 100%; max-height: 560px; object-fit: cover; display: block; }

/* 3 服务图文交替 */
.ed-services { padding-top: 40px; padding-bottom: 90px; }
.ed-svc { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; margin-bottom: 80px; }
.ed-svc.rev .ed-svc-media { order: 2; }
.ed-svc-media img { width: 100%; height: 460px; object-fit: cover; display: block; }
.ed-svc-text h3 { font-family: var(--f-title); font-size: clamp(24px, 2.6vw, 34px); font-weight: 500; margin: 0 0 18px; }
.ed-svc-text p { font-size: 16px; line-height: 1.75; color: #3a494a; margin: 0; }

/* 4 项目网格 */
.ed-projects { padding-top: 40px; padding-bottom: 90px; }
.ed-proj-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 28px; }
.ed-proj-card { position: relative; color: var(--c-ink); text-decoration: none; display: block; }
.ed-proj-img { overflow: hidden; margin-bottom: 16px; }
.ed-proj-img img { width: 100%; height: 340px; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.ed-proj-card:hover .ed-proj-img img { transform: scale(1.05); }
.ed-proj-tag { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--c-mid); }
.ed-proj-meta h3 { font-family: var(--f-title); font-size: 20px; font-weight: 500; margin: 8px 0 6px; line-height: 1.3; }
.ed-proj-sub { font-size: 14px; color: var(--c-mid); }
.ed-proj-idx { position: absolute; top: 0; right: 0; font-size: 13px; color: var(--c-mid); }

/* 5 团队 */
.ed-team { padding-top: 40px; padding-bottom: 90px; background: var(--c-soft); }
.ed-team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.ed-person { color: var(--c-ink); text-decoration: none; }
.ed-person-img { margin-bottom: 16px; overflow: hidden; }
.ed-person-img img { width: 100%; height: 420px; object-fit: cover; display: block; transition: transform .6s var(--ease); }
.ed-person:hover .ed-person-img img { transform: scale(1.04); }
.ed-person-dept { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--c-mid); }
.ed-person h3 { font-family: var(--f-title); font-size: 21px; font-weight: 500; margin: 8px 0 4px; }
.ed-person-role { font-size: 14px; color: var(--c-mid); }

/* 6 新闻 */
.ed-news { padding-top: 40px; padding-bottom: 90px; }
.ed-news-list { border-top: 1px solid var(--c-line); }
.ed-news-row { display: grid; grid-template-columns: 220px 1fr; gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; align-items: center; transition: background .3s; }
.ed-news-row:hover { background: var(--c-soft); }
.ed-news-img img { width: 100%; height: 130px; object-fit: cover; display: block; }
.ed-news-type { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--c-mid); margin-right: 16px; }
.ed-news-date { font-size: 13px; color: var(--c-mid); }
.ed-news-body h3 { font-family: var(--f-title); font-size: clamp(18px, 2vw, 24px); font-weight: 500; margin: 10px 0 0; line-height: 1.35; }

/* 7 CTA */
.ed-cta { position: relative; min-height: 420px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ed-cta-bg { position: absolute; inset: 0; }
.ed-cta-bg img { width: 100%; height: 100%; object-fit: cover; }
.ed-cta-copy { position: relative; text-align: center; color: #fff; z-index: 2; padding: 0 24px; }
.ed-cta-copy p { font-family: var(--f-title); font-size: clamp(26px, 3.4vw, 44px); font-weight: 500; margin: 0 0 28px; }
.ed-btn { display: inline-block; padding: 14px 38px; border: 1px solid #fff; color: #fff; text-decoration: none; font-size: 14px; letter-spacing: .16em; text-transform: uppercase; transition: all .3s; }
.ed-btn:hover { background: #fff; color: var(--c-ink); }

/* 8 关联领域 */
.ed-signpost { padding-top: 90px; padding-bottom: 100px; }
.ed-sp-list { border-top: 1px solid var(--c-line); }
.ed-sp-row { display: grid; grid-template-columns: 200px 1fr auto; gap: 28px; padding: 24px 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; align-items: baseline; }
.ed-sp-name { font-family: var(--f-title); font-size: 24px; font-weight: 500; transition: color .3s; }
.ed-sp-row:hover .ed-sp-name { color: var(--c-mid); }
.ed-sp-desc { font-size: 15px; line-height: 1.6; color: #4a5859; }
.ed-sp-cta { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-mid); white-space: nowrap; }

/* 响应式 */
@media (max-width: 991px) {
  .ed-proj-grid, .ed-team-grid { grid-template-columns: repeat(2, 1fr); }
  .ed-svc { grid-template-columns: 1fr; gap: 24px; }
  .ed-svc.rev .ed-svc-media { order: 0; }
  .ed-svc-media img { height: 340px; }
  .ed-news-row { grid-template-columns: 160px 1fr; gap: 20px; }
  .ed-sp-row { grid-template-columns: 1fr; gap: 6px; }
}
@media (max-width: 640px) {
  .ed-proj-grid, .ed-team-grid { grid-template-columns: 1fr; }
  .ed-proj-img img, .ed-person-img img { height: 300px; }
  .ed-news-row { grid-template-columns: 1fr; }
  .ed-news-img img { height: 180px; }
}

/* v69：学科列表中可点击的详情链接 */
.exp-link { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: color .3s, border-color .3s; }
.exp-link:hover { color: var(--c-mid); border-bottom-color: var(--c-mid); }

/* v70：全站三栏页脚（订阅 / 询问 / 关注我们） */
.ft-new.site-footer { padding: 0; display: block; background: var(--c-ink); }
.ft-inner { max-width: 1440px; margin: 0 auto; padding: 66px var(--gutter) 34px; }
.ft-grid { display: grid; grid-template-columns: 1.15fr .75fr 1.4fr; gap: 48px; }
.ft-col-label { font-size: 13px; color: rgba(251,251,249,.55); margin-bottom: 28px; }

/* 订阅表单 */
.ft-form { max-width: 360px; }
.ft-field { margin-bottom: 22px; }
.ft-field input, .ft-field select {
  width: 100%; background: transparent; border: none;
  border-bottom: 1px solid rgba(251,251,249,.4);
  color: var(--c-bg); font-family: var(--f-title);
  font-size: 22px; padding: 6px 0 10px; outline: none;
  transition: border-color .3s;
}
.ft-field input::placeholder { color: var(--c-bg); opacity: .95; }
.ft-field input:focus, .ft-field select:focus { border-bottom-color: var(--c-bg); }
.ft-field select { appearance: none; -webkit-appearance: none; cursor: pointer; }
.ft-field select option { color: #091D1E; background: #fff; }
.ft-select-field { position: relative; }
.ft-select-field::after {
  content: ""; position: absolute; right: 4px; top: 13px;
  width: 10px; height: 10px; pointer-events: none;
  border-right: 1.5px solid var(--c-bg); border-bottom: 1.5px solid var(--c-bg);
  transform: rotate(45deg);
}
.ft-btn {
  margin-top: 10px; background: transparent; border: 1px solid var(--c-bg);
  color: var(--c-bg); border-radius: 999px; padding: 12px 34px;
  font-size: 14px; cursor: pointer; transition: background .3s, color .3s;
}
.ft-btn:hover { background: var(--c-bg); color: var(--c-ink); }
.ft-form-msg { margin-top: 14px; font-size: 13px; min-height: 16px; }
.ft-form-msg.ok { color: #9fd3b0; }
.ft-form-msg.err { color: #e8a79e; }

/* 询问 */
.ft-inquire-link {
  font-family: var(--f-title); font-size: 26px; color: var(--c-bg);
  text-decoration: none; transition: color .3s;
}
.ft-inquire-link:hover { color: rgba(251,251,249,.55); }

/* 关注我们 */
.ft-socials { display: flex; gap: 42px; flex-wrap: wrap; }
.ft-social-col { display: flex; flex-direction: column; gap: 11px; }
.ft-social-col a {
  color: var(--c-bg); text-decoration: none; font-size: 14px;
  letter-spacing: .04em; transition: color .3s;
}
.ft-social-col a:hover { color: rgba(251,251,249,.55); }

/* 底部版权 */
.ft-bottom {
  margin-top: 56px; padding-top: 24px;
  border-top: 1px solid rgba(251,251,249,.14);
  display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.ft-copyright { font-size: 12.5px; color: rgba(251,251,249,.6); }
.ft-bottom-links { font-size: 12.5px; }
.ft-bottom-links a { color: rgba(251,251,249,.78); text-decoration: none; transition: color .3s; }
.ft-bottom-links a:hover { color: var(--c-bg); }
.ft-sep { margin: 0 10px; color: rgba(251,251,249,.4); }

@media (max-width: 900px) {
  .ft-grid { grid-template-columns: 1fr; gap: 42px; }
  .ft-form { max-width: 100%; }
}
@media (max-width: 600px) {
  .ft-inner { padding: 48px 22px 28px; }
  .ft-field input, .ft-field select { font-size: 19px; }
  .ft-socials { gap: 30px; }
  .ft-bottom { flex-direction: column; }
}

/* ============================================================
   v71：产品详情页去除参考站灰底，统一 HCD 暖米色 #F3EEEA
   根因：hba-theme.css 的 section:not(.hero){background-color:var(--site-colour)}
   其中 --site-colour=#B0B6B4，给每个 section 强加灰底。
   与 project 详情页（669-670 行）保持一致。
   ============================================================ */
body[data-page="product"],
body[data-page="product"] section,
body[data-page="product"] .pd-hero,
body[data-page="product"] .pd-head,
body[data-page="product"] .pd-intro,
body[data-page="product"] .pd-meta,
body[data-page="product"] .pd-seq,
body[data-page="product"] .pd-text,
body[data-page="product"] .pd-quote,
body[data-page="product"] .pd-more {
  background-color: #F3EEEA !important;
}

/* ============================================================
   v72：筛选下拉 → 内联可点击分类标签（chip）
   横向排列、纯文字、选中项墨绿加粗，点击即筛选，无需点开下拉。
   ============================================================ */
.chip-row,
.chip-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 26px;
}
.filterbar .chip-group { width: 100%; }
.chip-prefix {
  font-size: 13px;
  color: var(--c-site);
  letter-spacing: .08em;
  margin-right: 2px;
}
.chip {
  background: none;
  border: 0;
  padding: 2px 0;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  color: var(--c-mid);
  letter-spacing: .02em;
  transition: color .18s ease;
}
.chip:hover { color: var(--c-ink); }
.chip.on { color: var(--c-ink); font-weight: 700; }
/* 筛选栏容器：标签组与右侧计数并排，组内可换行 */
/* 产品馆筛选栏：与项目馆 .filterbar 容器完全对齐 */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 22px;
  padding: 22px var(--gutter);
  border-bottom: 1px solid var(--c-line);
  background: var(--c-soft);
}
.filter-bar .chip-row { flex: 1 1 auto; }
/* 产品计数：与项目计数 .filter-count 同位置/字号/颜色 */
.fb-count {
  margin-left: auto;
  font-size: 12px;
  letter-spacing: .14em;
  color: var(--c-mid);
}
/* 分类管理：删除 × 与添加 ＋（仅 studio 模式渲染） */
.chip-wrap { display: inline-flex; align-items: center; }
.chip-del {
  margin-left: 2px;
  width: 16px; height: 16px;
  border: 0; padding: 0;
  background: transparent;
  color: var(--c-mid);
  font-size: 13px; line-height: 16px;
  text-align: center;
  cursor: pointer;
  border-radius: 50%;
  opacity: 0;
  transition: opacity .15s, background .15s, color .15s;
}
.chip-wrap:hover .chip-del { opacity: 1; }
.chip-del:hover { background: var(--c-ink); color: #fff; }
.chip-add {
  margin-left: 6px;
  width: 24px; height: 24px;
  border: 1px solid var(--c-line);
  background: transparent;
  color: var(--c-mid);
  font-size: 15px; line-height: 1;
  border-radius: 50%;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.chip-add:hover { border-color: var(--c-ink); color: var(--c-ink); }
/* 内联新分类输入 */
.chip-input-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 4px;
}
.chip-input {
  width: 110px;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--c-line);
  border-radius: 999px;
  background: #fff;
  font-size: 12px;
  color: var(--c-ink);
  outline: none;
}
.chip-input:focus { border-color: var(--c-ink); }
.chip-ok, .chip-cancel {
  width: 22px; height: 22px;
  border: 0; padding: 0;
  border-radius: 50%;
  cursor: pointer;
  font-size: 12px; line-height: 22px;
  text-align: center;
}
.chip-ok { background: var(--c-ink); color: #fff; }
.chip-cancel { background: transparent; color: var(--c-mid); border: 1px solid var(--c-line); }
.chip-cancel:hover { color: var(--c-ink); border-color: var(--c-ink); }

/* ============================================================
   v73：导航三级动态下拉（一级菜单 → 二级类目组 → 三级链接）
   修复原两列 grid 把链接分列导致的缩进错位，所有文字在框内
   水平居中，组间清晰分隔，行距宽松；空组显示占位提示。
   ============================================================ */
.site-header .header-nav .drop-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: 18px 32px;
  min-width: 300px;
  max-width: 700px;
  padding: 24px 26px;
  background: #FBFBF9;
  border: 1px solid var(--c-line);
  border-radius: 4px;
}
.site-header .header-nav .drop-group {
  flex: 1 1 200px;
  min-width: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.site-header .header-nav .drop-subtitle {
  width: 100%;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--c-mid);
  margin: 0 0 10px;
  padding-bottom: 9px;
  border-bottom: 1px solid var(--c-line);
}
.site-header .header-nav .drop-menu a {
  display: block;
  width: 100%;
  text-align: center;
  padding: 8px 6px;
  font-size: 14px;
  color: var(--c-ink);
  text-transform: none;
  letter-spacing: .02em;
  transition: color .2s;
}
.site-header .header-nav .drop-menu a:hover { color: var(--c-accent); }
.site-header .header-nav .drop-empty {
  width: 100%;
  font-size: 12px;
  color: var(--c-site);
  text-align: center;
  padding: 10px 0;
}

/* ===== v74：全站搜索浮层 ===== */
.search-overlay {
  position: fixed; inset: 0; z-index: 1200;
  background: rgba(9, 29, 30, .97);
  backdrop-filter: blur(8px);
  opacity: 0; visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
  display: flex; justify-content: center;
  padding: clamp(48px, 9vh, 96px) clamp(20px, 6vw, 80px) 40px;
}
.search-overlay.on { opacity: 1; visibility: visible; }
.search-box { width: 100%; max-width: 920px; display: flex; flex-direction: column; min-height: 0; }
.search-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.search-cap { font-size: 12px; letter-spacing: .28em; color: var(--c-site); text-transform: uppercase; }
.search-close {
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25);
  background: transparent; color: #fff; font-size: 15px; cursor: pointer; transition: all .25s;
}
.search-close:hover { background: rgba(255,255,255,.14); transform: rotate(90deg); }
.search-field {
  display: flex; align-items: center; gap: 14px;
  border-bottom: 1px solid rgba(255,255,255,.28); padding: 6px 4px 16px;
}
.search-field svg { color: #fff; flex: 0 0 auto; }
.search-field input {
  flex: 1; background: transparent; border: 0; outline: none;
  color: #fff; font-size: clamp(20px, 2.6vw, 30px); font-weight: 600; letter-spacing: .01em;
}
.search-field input::placeholder { color: rgba(255,255,255,.4); font-weight: 400; }
.search-results { margin-top: 22px; overflow-y: auto; padding-right: 6px; }
.search-hint, .search-empty { color: var(--c-site); font-size: 14px; line-height: 1.7; padding: 8px 2px; }
.search-empty { color: #d9a7a0; }
.search-meta { font-size: 12px; letter-spacing: .12em; color: var(--c-accent); margin-bottom: 14px; }
.sr-group { margin-bottom: 22px; }
.sr-group-title {
  font-size: 12px; letter-spacing: .2em; color: var(--c-site); text-transform: uppercase;
  margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.1);
}
.sr-item {
  display: flex; align-items: center; gap: 16px;
  padding: 10px 10px; border-radius: 10px; text-decoration: none; transition: background .2s;
}
.sr-item:hover { background: rgba(255,255,255,.07); }
.sr-thumb {
  flex: 0 0 64px; width: 64px; height: 64px; border-radius: 8px; overflow: hidden;
  background: rgba(255,255,255,.08);
}
.sr-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sr-thumb-ph { display: inline-flex; align-items: center; justify-content: center; color: rgba(255,255,255,.3); }
.sr-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sr-title { color: #fff; font-size: 16px; font-weight: 600; }
.sr-en { color: var(--c-site); font-weight: 400; font-size: 13px; }
.sr-sub { color: var(--c-site); font-size: 12.5px; }
.sr-text mark, .sr-item mark { background: rgba(201,168,106,.35); color: #f0d9a8; border-radius: 3px; padding: 0 2px; }
@media (max-width: 600px) {
  .search-overlay { padding: 36px 18px 28px; }
  .sr-thumb { flex-basis: 52px; width: 52px; height: 52px; }
  .sr-title { font-size: 15px; }
}

/* ============================================================
   v75：观点/动态文章卡片（富媒体文章化）
   三列卡片网格，封面图 + 标签 + 日期 + 标题 + 副主题，
   悬停上浮、图片缓推；响应式降为两列/单列。
   ============================================================ */
.article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.article-card { background: #fff; border-radius: 12px; overflow: hidden; cursor: pointer;
  box-shadow: 0 2px 14px rgba(9,29,30,.06); transition: transform .25s, box-shadow .25s; }
.article-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(9,29,30,.14); }
.art-media { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.art-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  background-size: cover; background-position: center; transition: transform .45s; }
.article-card:hover .art-cover { transform: scale(1.05); }
.art-tag { position: absolute; top: 12px; left: 12px; background: rgba(9,29,30,.82); color: #e9dcc3;
  font-size: 11px; letter-spacing: .08em; padding: 5px 10px; border-radius: 6px; }
.art-body { padding: 18px 20px 22px; }
.art-date { font-size: 12px; color: var(--c-site); letter-spacing: .08em; margin-bottom: 8px; }
.art-title { font-size: 19px; line-height: 1.35; color: var(--c-ink); margin: 0 0 8px; font-weight: 700; }
.art-sub { font-size: 13.5px; line-height: 1.5; color: var(--c-mid); }
.dm-subtitle { font-size: 16px; color: #c9a86a; margin: 4px 0 18px; }
@media (max-width: 992px) { .article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .article-grid { grid-template-columns: 1fr; gap: 18px; } }

/* ============================================================
   v76：关于页统计区深色横幅（视觉丰富化）
   背景图 + 墨绿遮罩，每项圆形图片 + 金色大数字 + 描述，
   竖分隔线；响应式降为两列/单列。
   ============================================================ */
.stats-band { margin-top: clamp(40px,7vh,72px); border-radius: 18px; padding: clamp(34px,5vh,56px) clamp(24px,4vw,56px);
  background-size: cover; background-position: center; display: grid; grid-template-columns: repeat(4,1fr); gap: 26px;
  box-shadow: 0 18px 44px rgba(9,29,30,.22); }
.stat-card { text-align: center; color: #e9dcc3; padding: 0 8px; }
.stat-card + .stat-card { border-left: 1px solid rgba(255,255,255,.12); }
.stat-img { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; margin: 0 auto 14px;
  border: 2px solid rgba(201,168,106,.6); }
.stat-img img { width: 100%; height: 100%; object-fit: cover; }
.stat-card .stat-num { font-family: var(--f-title); font-size: clamp(38px,4.5vw,56px); font-weight: 800; color: #f0d9a8; line-height: 1; }
.stat-card .stat-num em { font-style: normal; font-size: .5em; color: #c9a86a; margin-left: 2px; }
.stat-card .stat-label { font-size: 15px; font-weight: 700; color: #fff; margin-top: 10px; letter-spacing: .04em; }
.stat-card .stat-desc { font-size: 12.5px; color: rgba(233,220,195,.7); line-height: 1.55; margin-top: 8px; }
@media (max-width: 900px) {
  .stats-band { grid-template-columns: repeat(2,1fr); gap: 30px 18px; }
  .stat-card:nth-child(3) { border-left: none; }
}
@media (max-width: 560px) {
  .stats-band { grid-template-columns: 1fr; }
  .stat-card + .stat-card { border-left: none; border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; }
}

/* ============================================================
   v77：传承时间线 v2（自主增删 + 自适应）
   左侧年份 + 金色中轴节点 + 右侧图片卡片，长文本自然撑开；
   移动端年份列收窄、卡片改上下堆叠。
   ============================================================ */
.timeline-v2 { position: relative; padding-left: 8px; }
.timeline-v2::before { content: ''; position: absolute; left: 96px; top: 8px; bottom: 8px; width: 2px;
  background: linear-gradient(#c9a86a, rgba(201,168,106,.15)); }
.tlv-row { position: relative; display: grid; grid-template-columns: 96px 1fr; gap: 30px; padding-bottom: 34px; }
.tlv-row:last-child { padding-bottom: 0; }
.tlv-year { position: relative; font-family: var(--f-title); font-size: 30px; font-weight: 800; color: var(--c-ink);
  text-align: right; padding-top: 14px; }
.tlv-year::after { content: ''; position: absolute; right: -35px; top: 22px; width: 12px; height: 12px; border-radius: 50%;
  background: #c9a86a; border: 3px solid #FBFBF9; box-shadow: 0 0 0 2px #c9a86a; }
.tlv-card { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 22px rgba(9,29,30,.08);
  display: grid; grid-template-columns: 200px 1fr; }
.tlv-img { width: 200px; min-height: 100%; }
.tlv-img img { width: 100%; height: 100%; object-fit: cover; }
.tlv-body { padding: 18px 22px; align-self: center; }
.tlv-body h3 { margin: 0 0 8px; font-size: 19px; color: var(--c-ink); }
.tlv-body p { margin: 0; font-size: 14px; line-height: 1.7; color: var(--c-mid); }
@media (max-width: 760px) {
  .timeline-v2::before { left: 60px; }
  .tlv-row { grid-template-columns: 60px 1fr; gap: 18px; }
  .tlv-year { font-size: 20px; }
  .tlv-year::after { right: -23px; }
  .tlv-card { grid-template-columns: 1fr; }
  .tlv-img { width: 100%; height: 160px; }
}

/* ============================================================
   v78：人物图片叠加文字（座右铭/职务，可编辑）
   金色竖线引导的叠加句，位于图片上方；支持视频封面。
   ============================================================ */
.person-media video { width: 100%; height: 100%; object-fit: cover; }
.person-quote { position: absolute; top: 18px; left: 18px; right: 18px; color: #f0d9a8;
  font-size: 15px; font-weight: 700; line-height: 1.5; text-shadow: 0 2px 10px rgba(0,0,0,.55);
  border-left: 2px solid #c9a86a; padding-left: 10px; }
@media (max-width: 600px) { .person-quote { font-size: 13.5px; } }

/* ============================================================
   v79：服务流程板块（从沟通到落地，大气纵向流程）
   左图带编号 + 右侧中英文标题与描述，卡片化、连接线留白；
   移动端上下堆叠。
   ============================================================ */
.process-flow { display: flex; flex-direction: column; gap: 26px; }
.process-step { display: grid; grid-template-columns: 280px 1fr; background: #fff; border-radius: 16px;
  overflow: hidden; box-shadow: 0 8px 26px rgba(9,29,30,.08); transition: transform .25s, box-shadow .25s; }
.process-step:hover { transform: translateY(-3px); box-shadow: 0 16px 38px rgba(9,29,30,.15); }
.ps-img { position: relative; height: 220px; overflow: hidden; }
.ps-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.process-step:hover .ps-img img { transform: scale(1.05); }
.ps-num { position: absolute; left: 16px; bottom: 10px; font-family: var(--f-title); font-size: 42px; font-weight: 800;
  color: #f0d9a8; line-height: 1; text-shadow: 0 2px 12px rgba(0,0,0,.55); }
.ps-body { padding: 28px 32px; align-self: center; }
.ps-body h3 { margin: 0 0 10px; font-size: 24px; color: var(--c-ink); display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.ps-body h3 em { font-style: normal; font-size: 13px; color: #c9a86a; letter-spacing: .12em; }
.ps-body p { margin: 0; font-size: 14.5px; line-height: 1.8; color: var(--c-mid); }
@media (max-width: 760px) {
  .process-step { grid-template-columns: 1fr; }
  .ps-img { height: 180px; }
  .ps-body { padding: 20px 22px; }
}

/* ============================================================
   v80：项目/产品混合布局（前面大屏随机 + 后面两列小卡）
   大屏 16:9 全宽、图片叠加标题地点；小卡两列、图+标题。
   每次进入随机选取大屏；移动端小卡降为单列。
   ============================================================ */
.big-feature-list { display: flex; flex-direction: column; gap: 24px; margin-bottom: 42px; }
.big-feature { position: relative; display: block; border-radius: 16px; overflow: hidden; aspect-ratio: 16/9;
  box-shadow: 0 12px 34px rgba(9,29,30,.16); }
.bf-media { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .6s; }
.big-feature:hover .bf-media { transform: scale(1.04); }
.bf-overlay { position: absolute; inset: auto 0 0 0; padding: clamp(24px,4vw,52px);
  background: linear-gradient(180deg, transparent, rgba(9,29,30,.8)); }
.bf-name { color: #fff; font-size: clamp(22px,2.6vw,34px); font-weight: 800; line-height: 1.2; }
.bf-sub { color: #e9dcc3; font-size: 14px; margin-top: 8px; letter-spacing: .04em; }
.small-card-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 28px; }
.small-card { display: block; border-radius: 14px; overflow: hidden; background: #fff;
  box-shadow: 0 6px 20px rgba(9,29,30,.08); transition: transform .25s, box-shadow .25s; }
.small-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(9,29,30,.14); }
.sc-media { aspect-ratio: 4/3; overflow: hidden; }
.sc-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.small-card:hover .sc-media img { transform: scale(1.05); }
.sc-meta { padding: 16px 18px 18px; }
.sc-name { font-size: 17px; font-weight: 700; color: var(--c-ink); }
.sc-sub { font-size: 13px; color: var(--c-mid); margin-top: 5px; }
@media (max-width: 680px) { .small-card-grid { grid-template-columns: 1fr; gap: 20px; } }

/* ============================================================
   v81：首页排版增强
   signpost 四项改为图文卡片（图上叠加标题+计数）；
   首页观点预览显示封面图+标签，点击打开具体文章。
   ============================================================ */
.signpost-card { display: block; position: relative; border-radius: 14px; overflow: hidden;
  box-shadow: 0 8px 24px rgba(9,29,30,.1); }
.sp-img { aspect-ratio: 4/3; overflow: hidden; }
.sp-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.signpost-card:hover .sp-img img { transform: scale(1.06); }
.sp-meta { position: absolute; inset: auto 0 0 0; padding: 30px 18px 16px;
  background: linear-gradient(180deg, transparent, rgba(9,29,30,.8)); }
.sp-meta h4 { color: #fff; font-size: 19px; font-weight: 800; }
.sp-meta p { color: #e9dcc3; font-size: 13px; margin: 4px 0 0; }
.home-news-card { display: block; }
.hn-media { position: relative; aspect-ratio: 4/3; border-radius: 12px; overflow: hidden;
  box-shadow: 0 6px 18px rgba(9,29,30,.1); }
.hn-cover { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.home-news-card:hover .hn-cover { transform: scale(1.05); }
.hn-tag { position: absolute; top: 10px; left: 10px; background: rgba(9,29,30,.85); color: #e9dcc3;
  font-size: 11px; padding: 4px 10px; border-radius: 20px; letter-spacing: .05em; }
.hn-date { font-size: 12px; color: var(--c-mid); margin-top: 12px; letter-spacing: .03em; }
.hn-title { font-size: 16px; font-weight: 700; color: var(--c-ink); margin-top: 5px; line-height: 1.4; }

/* ============================================================
   v82：敬请期待小弹窗（未配置链接的社交项点击触发）
   小尺寸居中卡片，深墨绿底 + 金色描边，点击遮罩或关闭按钮消失。
   ============================================================ */
.soon-mask { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center;
  background: rgba(6,16,17,.55); padding: 20px; }
.soon-mask.show { display: flex; }
.soon-card { position: relative; width: 240px; max-width: 100%; background: #091D1E;
  border: 1px solid rgba(201,168,106,.35); border-radius: 12px; padding: 30px 22px 26px; text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,.4); opacity: 1; }
.soon-text { font-family: 'Beausite Classic', serif; font-size: 20px; color: #e9dcc3; letter-spacing: .08em; }
.soon-close { position: absolute; top: 8px; right: 10px; border: none; background: transparent;
  color: rgba(233,220,195,.6); font-size: 13px; cursor: pointer; padding: 4px; line-height: 1; }
.soon-close:hover { color: #e9dcc3; }
.ft-soon { cursor: pointer; }

/* ============================================================
   v83：修复首页 fullscreen_links 末尾大片空白
   原模板 content/image/figure 为 100svh 全屏、链接 flex-end 沉底；
   现统一改为贴合内容高度，右侧小图垂直居中。
   ============================================================ */
.fullscreen_links { padding: 72px 0 !important; }
.fullscreen_links .position-relative { min-height: 0 !important; }
.fullscreen_links .fullscreen_links-content {
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
  align-items: initial !important;
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}
.fullscreen_links .fullscreen_links-image {
  height: auto !important;
  top: 50% !important;
}
.fullscreen_links .fullscreen_links-image figure {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  opacity: 1 !important;
}

/* ============================================================
   v84：HCD LOGO（CCD 同款）—— 大字 HCD + 下方 HeChen Design
   白色文字 + mix-blend-mode:exclusion，随 hero 视频明暗实时反色
   ============================================================ */
.site-header .logo { width: auto !important; flex: 0 0 auto !important; padding: 0 !important; }
.hcd-logo {
  display: inline-flex; flex-direction: column; align-items: flex-start;
  line-height: 1; text-decoration: none;
  mix-blend-mode: exclusion;
}
.hcd-logo-main {
  font-family: 'Beausite Classic', 'Beausite Slick', serif;
  font-size: 42px; font-weight: 600; letter-spacing: .03em;
  color: #FFFFFF; line-height: .95; display: block;
}
.hcd-logo-sub {
  font-family: 'Beausite Slick', 'Beausite Classic', sans-serif;
  font-size: 11px; font-weight: 400; letter-spacing: .14em;
  color: #FFFFFF; margin-top: 6px; display: block; white-space: nowrap;
}
/* 非首页深色头部：exclusion 白字在深色底上呈浅色，保持可见 */
@media (max-width: 900px) {
  .hcd-logo-main { font-size: 34px; }
  .hcd-logo-sub { font-size: 10px; }
}

/* ============================================================
   v85：CCD 式滚动入场动画（fadeInUp + 轻微错落）
   元素进入视口时从下方淡入上滑；兼容系统“减少动态效果”。
   ============================================================ */
.scroll-anim {
  opacity: 0; transform: translateY(34px);
  transition: opacity .9s cubic-bezier(.22,1,.36,1),
             transform .9s cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}
.scroll-anim.sa-in { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .scroll-anim { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================================================
   v86：LOGO 放大 + JS 实时取色（停用受堆叠上下文限制的 mix-blend）
   ============================================================ */
.hcd-logo { mix-blend-mode: normal; }
.hcd-logo-main {
  font-size: 58px;
  transition: color .45s ease;
}
.hcd-logo-sub {
  font-size: 14px; margin-top: 9px;
  transition: color .45s ease;
}
@media (max-width: 900px) {
  .hcd-logo-main { font-size: 44px; }
  .hcd-logo-sub { font-size: 12px; }
}

/* ============================================================
   v87：滚动入场升级——更大位移、更从容的缓动，贴近 CCD 大气感
   ============================================================ */
.scroll-anim {
  opacity: 0; transform: translateY(46px);
  transition: opacity 1.2s cubic-bezier(.16,1,.3,1),
             transform 1.2s cubic-bezier(.16,1,.3,1);
}
.scroll-anim.sa-in { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .scroll-anim { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================================================
   v88：列表页大屏卡片名称 / 地址居中（贴近 CCD）；LOGO 小字居中
   ============================================================ */
.bf-overlay { text-align: center; }
.bf-name, .bf-sub { text-align: center; }
.hcd-logo { align-items: center; text-align: center; }
.hcd-logo-sub { text-align: center; }

/* ============================================================
   v89：首页 hero 艺术字标语 —— 编辑式层次 + 金色斜体 + 逐行入场
   ============================================================ */
.hero-copy { text-align: right; }
.hero-slogan { line-height: 1.06; }
.hero-slogan span {
  display: block;
  opacity: 0;
  animation: hcdHeroLine 1.15s cubic-bezier(.16,1,.3,1) forwards;
}
.hero-slogan span:nth-child(1) {
  font-size: clamp(44px, 5.2vw, 100px);
  font-weight: 400; letter-spacing: .01em;
  animation-delay: .15s;
}
.hero-slogan span:nth-child(2) {
  font-size: clamp(24px, 2.9vw, 54px);
  font-weight: 300; letter-spacing: .1em;
  color: rgba(255,255,255,.92);
  margin: .14em 0 .2em;
  animation-delay: .34s;
}
.hero-slogan span:nth-child(3) {
  font-style: italic;
  font-size: clamp(58px, 7.4vw, 142px);
  font-weight: 400; line-height: 1.02;
  background: linear-gradient(118deg, #f6e7bd 0%, #e6c578 30%, #d4af60 52%, #bd9444 78%, #a87f34 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
  animation-delay: .52s;
}
@keyframes hcdHeroLine {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slogan span { opacity: 1 !important; animation: none !important; transform: none !important; }
}
@media (max-width: 768px) {
  .hero-slogan span:nth-child(1) { font-size: clamp(34px, 9vw, 52px); }
  .hero-slogan span:nth-child(2) { font-size: clamp(18px, 4.6vw, 30px); }
  .hero-slogan span:nth-child(3) { font-size: clamp(44px, 13vw, 78px); }
}
