/* ============================================================
   team+ 加合建筑 · 全站设计系统（对标 MAD 国际化排版）
   字重 Light 300 主导 / 负字距大标题 / mono 标签 / 1px 细线
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@200;300;400;500&family=Noto+Sans+SC:wght@200;300;400;500&family=IBM+Plex+Mono:wght@400;500&display=swap');

* { margin:0; padding:0; box-sizing:border-box; }

:root {
  --y: #FFDE00;            /* 品牌黄 PANTONE 116C —— 只做点缀 */
  --bk: #0A0A0A;
  --ink: #141414;          /* 正文深 */
  --g1: #555;              /* 次级文字 */
  --g2: #999;              /* 弱化文字 */
  --g3: #bbb;
  --line: #E8E8E8;         /* 细线（亮底） */
  --line-d: #232323;       /* 细线（暗底） */
  --bg: #fff;
  --sans: 'Montserrat','Noto Sans SC','Helvetica Neue',Helvetica,'PingFang SC','Microsoft YaHei',Arial,sans-serif;
  --mono: 'IBM Plex Mono',ui-monospace,'SF Mono',Consolas,'Noto Sans SC',monospace;

  /* 排版尺度（对齐 i-mad.cn：display 96 / h1 56 / h2 36 / body 14） */
  --fs-display: clamp(52px, 6.4vw, 96px);
  --fs-h1: clamp(36px, 4vw, 56px);
  --fs-h2: clamp(25px, 2.6vw, 36px);
  --fs-h3: 18px;
  --fs-body: 14px;
  --fs-small: 12.5px;
  --fs-label: 10.5px;

  --pad-x: clamp(24px, 4vw, 56px);
  --sec-y: clamp(64px, 7.5vw, 112px);
}

html { scroll-behavior:smooth; }
body {
  font-family: var(--sans);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.85;
  color: var(--ink);
  background: #eee;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { text-decoration:none; color:inherit; }
img { display:block; }
::selection { background:var(--y); color:var(--bk); }

.page { max-width:1520px; margin:0 auto; background:var(--bg); }
.container { padding-left:var(--pad-x); padding-right:var(--pad-x); }

/* ---------- 排版工具 ---------- */
.display { font-size:var(--fs-display); font-weight:200; line-height:.95; letter-spacing:-.03em; }
.h1 { font-size:var(--fs-h1); font-weight:200; line-height:1; letter-spacing:-.025em; }
.h2 { font-size:var(--fs-h2); font-weight:300; line-height:1.1; letter-spacing:-.015em; }
.h3 { font-size:var(--fs-h3); font-weight:400; line-height:1.4; }
.mono { font-family:var(--mono); }

/* 小节标签：mono 大写 + 黄方块（全站统一的"建筑图纸"语言） */
.eyebrow {
  display:flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:var(--fs-label);
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--g2); font-weight:400; line-height:1.6;
}
.eyebrow::before { content:''; width:8px; height:8px; background:var(--y); flex-shrink:0; }
.eyebrow.no-sq::before { display:none; }

/* 细线按钮 */
.btn {
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.2em; text-transform:uppercase;
  color:var(--bk); border:1px solid var(--bk); padding:15px 30px;
  cursor:pointer; background:transparent; transition:.25s; line-height:1;
}
.btn:hover { background:var(--bk); color:var(--y); }
.btn.inv { color:#fff; border-color:#fff; }
.btn.inv:hover { background:var(--y); border-color:var(--y); color:var(--bk); }
.btn .arr { font-family:var(--sans); font-weight:300; }

/* 文本链（→ 结尾，下划线浮现） */
.tlink {
  font-family:var(--mono); font-size:var(--fs-label); letter-spacing:.18em; text-transform:uppercase;
  color:var(--bk); padding-bottom:5px; border-bottom:1px solid var(--line);
  transition:.25s; cursor:pointer; white-space:nowrap;
}
.tlink:hover { border-color:var(--bk); }

/* ---------- 导航（持续浮现 · 对标 MAD） ---------- */
/* 内页：sticky 吸附 + 半透明白底毛玻璃 */
.nav {
  position:sticky; top:0; z-index:40;
  display:flex; justify-content:space-between; align-items:center;
  padding:24px var(--pad-x);
  background:rgba(255,255,255,.88); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:background .3s ease;
}
/* 首页：导航绝对定位悬浮 hero 上（不占流，hero 从 0 起正好 100dvh 充满首屏无滚动条），滚动后切 fixed 白底 */
.nav.abs {
  position:absolute; top:0; left:0; right:0; z-index:40;
  background:transparent; border-bottom:none; color:#fff;
  backdrop-filter:none; -webkit-backdrop-filter:none;
}
.nav.abs.scrolled {
  position:fixed;
  background:rgba(255,255,255,.88); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  color:var(--bk); border-bottom:1px solid var(--line);
}
.nav.abs .logo .lg-b { display:none; }
.nav.abs.scrolled .logo .lg-w { display:none; }
.nav.abs.scrolled .logo .lg-b { display:block; }
.nav .logo { display:flex; align-items:center; }
.nav .logo img { height:24px; width:auto; display:block; }
.menu { display:flex; gap:clamp(28px,3.5vw,56px); }
.menu a {
  font-family:var(--mono); font-size:12px; letter-spacing:.16em;
  color:inherit; opacity:.55; transition:.2s; padding:4px 0; position:relative;
}
.menu a:hover { opacity:1; }
.menu a.active { opacity:1; }
.menu a.active::after { content:''; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--y); }
.nav-right { display:flex; align-items:center; gap:22px; }
.icon-btn { position:relative; width:22px; height:22px; display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:.75; transition:.2s; line-height:0; }
.icon-btn:hover { opacity:1; }
.icon-btn svg { width:18px; height:18px; display:block; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.tip {
  position:absolute; top:34px; right:0; white-space:nowrap;
  background:var(--bk); color:#fff; font-family:var(--mono); font-size:10px; letter-spacing:.14em;
  padding:8px 13px; opacity:0; pointer-events:none; transform:translateY(-4px); transition:.2s;
}
.nav.abs .tip { background:#fff; color:var(--bk); }
.nav.abs.scrolled .tip { background:var(--bk); color:#fff; }
.icon-btn:hover .tip { opacity:1; transform:none; }

/* 语言切换：悬停弹出 中文 / EN（含桥接热区，滑过不丢失） */
.lang-wrap { position:relative; }
.lang-wrap::before {
  content:''; position:absolute; top:100%; left:-10px; right:-10px; height:12px;
}
.lang-menu {
  position:absolute; top:calc(100% + 10px); right:-6px; min-width:104px; z-index:30;
  background:#fff; color:var(--bk); border:1px solid var(--line);
  opacity:0; pointer-events:none; transform:translateY(-4px);
  transition:opacity .15s ease, transform .15s ease;
}
.lang-wrap:hover .lang-menu { opacity:1; pointer-events:auto; transform:none; }
.lang-menu a {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:10px 14px; font-family:var(--mono); font-size:11px; letter-spacing:.14em;
  cursor:pointer; transition:.15s; line-height:1;
}
.lang-menu a:hover { background:var(--y); }
.lang-menu a.on::after { content:''; width:6px; height:6px; background:var(--y); flex-shrink:0; }
.lang-menu a.on:hover::after { background:var(--bk); }

/* 语言切换：地球图标 + 悬停透明下拉「中/英」竖排（菜单中线对齐图标中线） */
.lang-menu {
  position:absolute; top:calc(100% + 10px); right:50%; min-width:0; z-index:30;
  background:rgba(255,255,255,.82); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(10,10,10,.06); padding:5px 0;
  display:flex; flex-direction:column; align-items:stretch;
  transform:translate(50%,-4px);
  box-shadow:0 6px 24px rgba(0,0,0,.08);
}
.lang-wrap:hover .lang-menu { opacity:1; pointer-events:auto; transform:translate(50%,0); }
.lang-menu a {
  position:relative; display:flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-size:12.5px; font-weight:300; letter-spacing:.05em;
  padding:7px 20px; color:var(--g1);
}
.lang-menu a:hover { background:var(--y); color:var(--bk); }
.lang-menu a.on { color:var(--bk); font-weight:400; }
.lang-menu a.on::after { content:''; position:absolute; left:8px; top:50%; transform:translateY(-50%); width:5px; height:5px; background:var(--y); }
.lang-menu a.on:hover::after { background:var(--bk); }

/* 英文模式：隐藏仅中文元素 */
html.en .zho { display:none !important; }

/* ---------- 页脚（浅灰底 · 导览与信息合并，全站统一） ---------- */
footer { background:#E9E9E9; color:var(--ink); }
/* 上区：logo + 导览胶囊 + 回顶 */
.f-top { position:relative; display:flex; gap:clamp(40px,6vw,100px); padding-top:clamp(48px,5.5vw,80px); }
.f-brand img { height:26px; width:auto; display:block; }
.f-navgroups { display:flex; gap:clamp(40px,5vw,80px); flex-wrap:wrap; }
.f-ng .ng-t { font-size:14px; font-weight:500; color:var(--ink); margin-bottom:14px; letter-spacing:.01em; }
.f-pills { display:flex; gap:8px; flex-wrap:wrap; }
.pill {
  font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase;
  color:#3a3a3a; background:#DBDBDB; padding:8px 14px; border-radius:3px; transition:.2s;
}
.pill:hover { background:var(--bk); color:var(--y); }
/* 临近底部才出现的渐入 */
.ex-rv { opacity:0; transform:translateY(16px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
footer.in .ex-rv { opacity:1; transform:none; }
/* 下区：关注 / 联系 / 信息 三栏 */
.f-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(36px,4vw,64px);
  margin-top:clamp(36px,4vw,56px); padding-top:clamp(32px,3.5vw,48px); padding-bottom:clamp(28px,3vw,44px);
  border-top:1px solid #d3d3d3;
}
.f-col .t { font-family:var(--mono); font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:#8f8f8f; margin-bottom:18px; }
.f-col .i { font-size:12.5px; font-weight:300; color:#5c5c5c; margin-bottom:10px; line-height:1.85; }
.f-col .i a { color:#5c5c5c; transition:.2s; border-bottom:1px solid transparent; }
.f-col .i a:hover { color:var(--bk); }
.f-col .i.mail a { color:var(--bk); border-bottom:1px solid rgba(10,10,10,.28); }
/* 关注：通用符号 */
.f-follow { display:flex; flex-direction:column; gap:12px; }
.f-follow .fb { display:flex; align-items:center; gap:12px; cursor:pointer; }
.f-follow .fb .ic { width:28px; height:28px; flex-shrink:0; }
.f-follow .fb .ic svg { width:100%; height:100%; display:block; }
.f-follow .fb .lbl { font-size:12px; font-weight:300; color:#5c5c5c; letter-spacing:.04em; transition:.2s; }
.f-follow .fb:hover .lbl { color:var(--bk); }
/* 信息表单：紧凑下划线式 + 回车箭头按钮 */
.msg-form input, .msg-form textarea {
  width:100%; background:transparent; border:none; border-bottom:1px solid #c4c4c4;
  color:var(--ink); font-family:var(--sans); font-size:12px; font-weight:300;
  padding:7px 0; margin-bottom:8px; outline:none; transition:.25s; border-radius:0;
}
.msg-form input::placeholder, .msg-form textarea::placeholder { color:#9d9d9d; }
.msg-form input:focus, .msg-form textarea:focus { border-color:var(--bk); }
.msg-form textarea { height:40px; resize:none; line-height:1.6; }
.msg-form .send {
  margin:4px 0 0; display:flex; align-items:center; justify-content:center;
  width:46px; height:38px; padding:0; border:none; border-radius:3px;
  background:#DBDBDB; color:#3a3a3a; font-size:16px; font-weight:300; line-height:1;
  cursor:pointer; transition:.25s;
}
.msg-form .send:hover { background:var(--bk); color:var(--y); }
/* 发送成功反馈：绿色 */
.msg-form .send.sent { background:#07C160; color:#fff; }
.f-div { height:1px; background:#d3d3d3; }
.f-bottom {
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding-top:22px; padding-bottom:28px;
  font-family:var(--mono); font-size:10px; letter-spacing:.1em; color:#8f8f8f;
}

/* ---------- 站内搜索弹层 ---------- */
.search-overlay { position:fixed; inset:0; background:rgba(10,10,10,.6); backdrop-filter:blur(4px); z-index:50; display:flex; align-items:flex-start; justify-content:center; padding-top:16vh; opacity:0; pointer-events:none; transition:.25s; }
.search-overlay.show { opacity:1; pointer-events:auto; }
.search-box { width:min(640px,92vw); background:#fff; }
.search-box .row { display:flex; align-items:center; padding:22px 26px; border-bottom:1px solid var(--line); }
.search-box .row svg { width:20px; height:20px; stroke:var(--bk); fill:none; stroke-width:1.4; flex-shrink:0; }
.search-box input { flex:1; border:none; outline:none; font-family:var(--sans); font-size:17px; font-weight:300; margin-left:16px; }
.search-box .res { padding:10px 26px 18px; max-height:320px; overflow:auto; }
.search-box .res .r { padding:15px 0; border-bottom:1px solid #f2f2f2; color:var(--g1); font-size:14px; font-weight:300; cursor:pointer; display:flex; justify-content:space-between; align-items:center; transition:.15s; }
.search-box .res .r:hover { color:var(--bk); padding-left:6px; }
.search-box .res .r small { font-family:var(--mono); color:var(--g3); font-size:10px; letter-spacing:.14em; }

/* ---------- 底部导览 SITEMAP（细线列表式） ---------- */
.sitemap { padding-top:var(--sec-y); padding-bottom:var(--sec-y); }
.sm-row {
  display:flex; align-items:baseline; gap:clamp(20px,3vw,48px);
  padding:30px 0; border-top:1px solid var(--line);
  cursor:pointer; transition:.25s; position:relative;
}
.sm-row:last-child { border-bottom:1px solid var(--line); }
.sm-row .sm-num { font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--g3); width:36px; flex-shrink:0; transition:.25s; }
.sm-row .sm-en { font-size:clamp(22px,2.4vw,32px); font-weight:200; letter-spacing:-.015em; line-height:1.1; transition:.25s; }
.sm-row .sm-cn { font-size:14px; font-weight:300; color:var(--g2); transition:.25s; }
.sm-row .sm-desc { margin-left:auto; font-size:12px; color:var(--g2); font-weight:300; max-width:280px; text-align:right; transition:.25s; }
.sm-row .sm-go { font-size:22px; font-weight:200; color:var(--g3); transition:.25s; transform:translateX(0); }
.sm-row:hover { background:var(--y); padding-left:20px; padding-right:20px; margin-left:-20px; margin-right:-20px; }
.sm-row:hover .sm-num, .sm-row:hover .sm-cn, .sm-row:hover .sm-desc { color:var(--bk); }
.sm-row:hover .sm-go { color:var(--bk); transform:translateX(6px); }

/* ---------- 滚动显现 / 角标 ---------- */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal.in { opacity:1; transform:none; }
.sim-badge { position:fixed; right:16px; bottom:16px; z-index:99; background:var(--bk); color:var(--y); font-family:var(--mono); font-size:10px; letter-spacing:.12em; padding:8px 14px; opacity:.8; }

/* ---------- 内页页头（统一） ---------- */
.pagehead { padding-top:clamp(56px,7vw,104px); padding-bottom:clamp(40px,5vw,72px); }
.pagehead .h1 { margin-top:22px; }
.pagehead .ph-note { margin-top:18px; font-size:var(--fs-small); font-weight:300; color:var(--g2); max-width:520px; }

/* ---------- 响应式 ---------- */
@media (max-width:1024px) {
  .f-top { flex-direction:column; gap:32px; }
  .f-grid { grid-template-columns:1fr 1fr; gap:36px; }
  .sm-row .sm-desc { display:none; }
}
@media (max-width:640px) {
  .f-grid { grid-template-columns:1fr; }
  .menu { gap:20px; }
  .menu a { font-size:11px; }
}
