@charset "UTF-8";
/* ============================================================================
   ARTE Capital 新站 · 补充样式
   ----------------------------------------------------------------------------
   arte2.css 是新站 Tailwind 构建产物（原样搬运，不做修改）。
   本文件只承载它无法覆盖的少量必需规则，全部以 .arte2- / html 作用域，避免污染。
   设计令牌沿用 arte2.css 的 :root（--primary / --foreground / --accent / --border …）
   ========================================================================== */

/* ---------- 1. 进场动画：渐进增强 --------------------------------
   arte2.css 里 .reveal{opacity:0;transform:translateY(24px)} 是无条件的。
   脚本失效时必须让内容直接可见，否则整页空白（历史踩坑）。 */
html:not(.js) .reveal { opacity: 1 !important; transform: none !important; }

/* ---------- 2. 锚点跳转避开吸顶头部 ---------- */
html { scroll-padding-top: 96px; }

/* ---------- 3. 吸顶头部 / 汉堡按钮 ---------- */
.arte2-burger { -webkit-tap-highlight-color: transparent; }
.arte2-burger span { transition: transform .3s ease, opacity .25s ease; }
.arte2-header.is-menu-open .arte2-burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.arte2-header.is-menu-open .arte2-burger span:nth-child(2) { opacity: 0; }
.arte2-header.is-menu-open .arte2-burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* ---------- 4. 行動版抽屜 ---------- */
.arte2-drawer {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  display: flex;
  flex-direction: column;
  padding: 22px 24px 30px;
  background: hsl(var(--foreground));
  border-bottom: 1px solid rgba(255, 255, 255, .15);
  box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .55);
  max-height: calc(100vh - 76px);
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity .28s ease, transform .28s ease, visibility .28s;
}
.arte2-header.is-menu-open .arte2-drawer { opacity: 1; visibility: visible; transform: translateY(0); }
.arte2-drawer a {
  padding: 13px 2px;
  color: #fff;
  font-size: 15px;
  letter-spacing: .12em;
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  transition: color .25s ease, padding-left .25s ease;
}
.arte2-drawer a:last-child { border-bottom: 0; }
.arte2-drawer a:hover { color: hsl(var(--accent)); padding-left: 6px; }

/* ---------- 5. 新聞手風琴 ---------- */
.arte2-news-head {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.arte2-news-head h2 { transition: color .3s ease; }
.arte2-news.is-open .arte2-news-head h2,
.arte2-news-head:hover h2 { color: hsl(var(--primary)); }
.arte2-news-body {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transition: grid-template-rows .42s cubic-bezier(.4, 0, .2, 1), opacity .32s ease;
}
.arte2-news.is-open .arte2-news-body { grid-template-rows: 1fr; opacity: 1; }
.arte2-news-inner { overflow: hidden; }
/* 注意：这里**不要**给 .arte2-news-plus 加 line-height:1。
   定稿版用的是 text-xl 自带的 28px 行高，压成 1（20px）会让每行卡片矮 4px，
   5 条就矮 20px（已实测）。保持继承，与定稿逐像素一致。 */
.arte2-news-plus { transition: transform .3s ease; }
.arte2-news.is-open .arte2-news-plus { transform: rotate(45deg); }
/* 正文為空（後台還沒填）時不可展開，也不顯示「+」 */
.arte2-news.is-empty .arte2-news-plus { display: none; }
.arte2-news.is-empty .arte2-news-head { pointer-events: none; cursor: default; }

/* 後台富文本正文排版（新聞展開內容 / 詳情頁）
   注意：这里只写"元素名 + 类名"两级选择器，且不写 `> * + *` 的通用间距，
   避免特异性压过后台内容里自带的工具类（历史踩坑）。 */
.arte2-prose { padding-top: 1.5rem; color: hsl(var(--foreground) / .72); font-size: 14px; line-height: 2; }
.arte2-prose-flush { padding-top: 0; }
.arte2-prose p { margin: 0 0 1em; }
.arte2-prose p:last-child { margin-bottom: 0; }
.arte2-prose h2,
.arte2-prose h3,
.arte2-prose h4 {
  font-family: "Playfair Display", "Noto Serif SC", Georgia, "Songti SC", serif;
  color: hsl(var(--foreground));
  line-height: 1.5;
}
.arte2-prose h2 { margin: 1.6em 0 .7em; font-size: 20px; }
.arte2-prose h3 { margin: 1.4em 0 .6em; font-size: 17px; }
.arte2-prose h4 { margin: 1.3em 0 .5em; font-size: 15px; }
.arte2-prose strong { color: hsl(var(--foreground)); font-weight: 600; }
.arte2-prose a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 3px; }
.arte2-prose ul { margin: 0 0 1em; padding-left: 0; list-style: none; }
.arte2-prose ul > li { position: relative; padding-left: 20px; }
.arte2-prose ul > li:before {
  content: "";
  position: absolute;
  left: 0;
  top: .92em;
  width: 12px;
  height: 1px;
  background: hsl(var(--accent));
}
.arte2-prose ol { margin: 0 0 1em; padding-left: 1.5em; list-style: decimal; }
.arte2-prose ol > li { padding-left: 4px; }
.arte2-prose img,
.arte2-prose video { display: block; max-width: 100%; height: auto; margin: 1.6em 0; }
.arte2-prose blockquote {
  margin: 1.4em 0;
  padding-left: 18px;
  border-left: 2px solid hsl(var(--accent));
  color: hsl(var(--foreground) / .6);
}
.arte2-prose table { width: 100%; border-collapse: collapse; font-size: 13px; }
.arte2-prose th,
.arte2-prose td { padding: 8px 12px; border: 1px solid hsl(var(--border)); text-align: left; }

/* ---------- 6. 團隊頭像：有照片蓋住字母，無照片露出字母 ---------- */
.arte2-avatar-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.arte2-avatar-img[src=""] { display: none; }
/* 後台沒上傳照片時 [list:ico] 會回落到 PbootCMS 的 nopic.png 占位圖，
   這裡直接隱藏，讓底層字母縮寫露出來（新增成員無需再手動傳圖）。 */
.arte2-avatar-img[src*="nopic"] { display: none; }

/* 定稿裡「字母縮寫 + 紅底線」和「真人照片」是**二選一**的兩套 markup：
   有照片時只輸出一個 <img>，根本沒有字母和紅線。
   我這邊為了兼容「後台可能沒傳圖」而在一個容器裡同時放了兩者，
   結果圓形裁切的抗鋸齒邊緣會把底下的紅線混出來，照片底部多出一圈 1px 紅邊
   （實測 18~36 個像素，肉眼幾乎看不出，但既然是偏差就消掉）。
   由 js/arte2.js 的 initAvatar() 在照片確實載入成功後掛上 .has-img。 */
.arte2-avatar.has-img > .arte2-avatar-letter,
.arte2-avatar.has-img > .arte2-avatar-bar { display: none; }

/* ---------- 7. 分頁 ---------- */
.arte2-pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 56px;
}
.arte2-pager[hidden] { display: none !important; }
.arte2-pager-num { display: inline-flex; align-items: center; gap: 6px; }
.arte2-pager a,
.arte2-pager .page-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 14px;
  border: 1px solid hsl(var(--border));
  color: hsl(var(--foreground) / .7);
  font-size: 13px;
  letter-spacing: .06em;
  text-decoration: none;
  transition: border-color .25s ease, color .25s ease, background-color .25s ease;
}
.arte2-pager a:hover { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }
.arte2-pager .page-num-current,
.arte2-pager .page-num-current:hover {
  background: hsl(var(--primary));
  border-color: hsl(var(--primary));
  color: #fff;
}
.arte2-pager a[href="javascript:;"] { opacity: .35; pointer-events: none; }

/* ---------- 8. 表單提示 ---------- */
.arte2-formmsg {
  padding: 12px 16px;
  border: 1px solid hsl(var(--border));
  font-size: 13px;
  line-height: 1.7;
}
.arte2-formmsg.is-ok { border-color: hsl(var(--accent)); color: hsl(var(--accent)); }
.arte2-formmsg.is-err { border-color: hsl(var(--primary)); color: hsl(var(--primary)); }

/* ---------- 9. 修正 ---------- */
/* 詳情/單頁 banner 上的標題在窄屏不要溢出 */
@media (max-width: 480px) {
  .arte2-pagehead-title { font-size: 34px; }
  .arte2-pager a,
  .arte2-pager .page-num { padding: 0 10px; }
}
/* Safari 下 grid-template-rows 动画的兜底：不支持时直接显示 */
@supports not (grid-template-rows: 0fr) {
  .arte2-news-body { display: block; max-height: 0; overflow: hidden; transition: max-height .42s ease; }
  .arte2-news.is-open .arte2-news-body { max-height: 4000px; }
}

/* ---------- 10. 编号（01/02/03…）与卡片错峰进场 ----------
   模板里序号位输出空 <span class="arte2-no">，由计数器补 01、02…
   这样后台增删条目后编号自动重排，无需改模板。
   .arte2-grid = 据点/团队卡片网格；.arte2-strats = 投资策略横向行 */
.arte2-grid,
.arte2-strats { counter-reset: arte2-no; }
.arte2-no { counter-increment: arte2-no; }
.arte2-no:before { content: counter(arte2-no, decimal-leading-zero); }

.arte2-grid > .reveal:nth-child(2) { transition-delay: .08s; }
.arte2-grid > .reveal:nth-child(3) { transition-delay: .16s; }
.arte2-grid > .reveal:nth-child(4) { transition-delay: .24s; }
.arte2-grid > .reveal:nth-child(5) { transition-delay: .32s; }
.arte2-grid > .reveal:nth-child(6) { transition-delay: .4s; }

/* 策略行逐条错峰（定稿版是 60ms 步进） */
.arte2-strats > .reveal:nth-child(2) { transition-delay: .06s; }
.arte2-strats > .reveal:nth-child(3) { transition-delay: .12s; }
.arte2-strats > .reveal:nth-child(4) { transition-delay: .18s; }
.arte2-strats > .reveal:nth-child(5) { transition-delay: .24s; }
.arte2-strats > .reveal:nth-child(6) { transition-delay: .3s; }

/* ---------- 11. 投資策略行的图标 ----------
   每行内放 4 个内联 SVG，按行次序只显示其中一个：
   1=走势图（大中華股票）2=货币（結構信貸）3=星芒（科技私募股權）4=地球（中阿投資）
   ——定稿版 v20 给第 4 条换了地球图标，修掉了旧版 3/4 图标重复的问题。 */
.arte2-icon > svg { display: none; }
.arte2-strats > .reveal:nth-child(1) .arte2-icon > svg:nth-child(1),
.arte2-strats > .reveal:nth-child(2) .arte2-icon > svg:nth-child(2),
.arte2-strats > .reveal:nth-child(3) .arte2-icon > svg:nth-child(3),
.arte2-strats > .reveal:nth-child(4) .arte2-icon > svg:nth-child(4) { display: block; }
/* 超过 4 行（后台新增）默认显示地球图标，避免空白圆 */
.arte2-strats > .reveal:nth-child(n+5) .arte2-icon > svg:nth-child(4) { display: block; }

/* 新聞列表逐条错峰进场 */
.arte2-news:nth-child(2) { transition-delay: .06s; }
.arte2-news:nth-child(3) { transition-delay: .12s; }
.arte2-news:nth-child(4) { transition-delay: .18s; }
.arte2-news:nth-child(5) { transition-delay: .24s; }
.arte2-news:nth-child(6) { transition-delay: .3s; }

/* ---------- 12. 法律页（私隱政策 / 免責聲明）----------
   這兩頁的正文由後台富文本輸出，用自帶語義類排版，不與工具類搶樣式。 */
.arte2-legal { color: hsl(var(--foreground) / .72); font-size: 14px; line-height: 1.9; }
.arte2-legal a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 3px; }
.arte2-legal img { max-width: 100%; height: auto; }

/* 私隱政策：编号小节
   ⚠️ 三處必須逐像素對齊定稿，別憑手感改：
   ① 上下邊框：定稿寫的是 `.border-t.border-border.py-8.last:border-b`，而那個 div 是
      `.reveal` 的唯一子節點 —— 所以 `:last-child` **每一條都命中**，六條全都畫了
      下邊框。只有最後一條畫，每條就少 1px。
   ② h2 行高：定稿用 Tailwind 的 `text-xl`（1.25rem / **1.75rem** = 28px），
      不是 1.5（30px）。1.5 每條高 2px。
   ③ 上面兩條一個 -1 一個 +2，淨 +1 —— 這正是之前那 9px 差的主要來源。 */
.arte2-secs {}
.arte2-sec { padding: 2rem 0; border-top: 1px solid hsl(var(--border)); border-bottom: 1px solid hsl(var(--border)); }
.arte2-sec h2 {
  display: flex;
  align-items: baseline;
  margin: 0;
  font-family: "Playfair Display", "Noto Serif SC", Georgia, "Songti SC", serif;
  font-size: 20px;
  line-height: 1.75rem; /* = text-xl 的 28px，勿改成 1.5 */
  color: hsl(var(--foreground));
}
.arte2-sec-no {
  flex: 0 0 auto;
  margin-right: 1rem;
  color: hsl(var(--primary));
  font-family: "Playfair Display", Georgia, serif;
}
.arte2-sec p { margin: 1rem 0 0; }
/* 定稿：`text-[12px] leading-relaxed`，leading-relaxed = 1.625 → 19.5px，不是 1.8（21.6px）。 */
.arte2-updated { margin-top: 2.5rem; font-size: 12px; line-height: 1.625; color: hsl(var(--foreground) / .5); }

/* 免責聲明：阿拉伯数字条目 */
.arte2-disc { display: flex; flex-direction: column; gap: 1.5rem; }
.arte2-disc-item { display: flex; gap: 1.5rem; padding-top: 1.5rem; border-top: 1px solid hsl(var(--border)); }
.arte2-disc-no {
  flex: 0 0 auto;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 20px;
  line-height: 1.75rem; /* = text-xl 的 28px；寫 1.7 會變 34px，單行條目反而被撐高 6px */
  color: hsl(var(--accent));
}
/* 定稿條目正文是 `leading-[2]`（14×2 = 28px），而不是 .arte2-legal 繼承下來的 1.9（26.6px）。 */
.arte2-disc-item p { margin: 0; line-height: 2; }
.arte2-note {
  margin-top: 3rem;
  padding-left: 1.5rem;
  border-left: 2px solid hsl(var(--primary));
  font-size: 12px;
  line-height: 1.625; /* 定稿 leading-relaxed → 19.5px */
  color: hsl(var(--foreground) / .6);
}
@media (max-width: 680px) {
  .arte2-disc-item { gap: 1rem; }
}

/* 後台富文本編輯器可能剝掉上面的自定義類，這裡給原生標籤兜底排版，
   保證無論類名在不在，法律頁都不會變成一大坨無間距文字。
   ⚠️ 外層一律套 :where() 把優先級壓成 0：只要上面任何一條類名規則（.arte2-sec h2 / .arte2-disc-item p …）
   命中，就由它說話。否則本段因為排在文件最後，會用同優先級把設計排版整個蓋掉。 */
:where(.arte2-legal) :where(h1, h2, h3) {
  margin: 2em 0 .8em;
  font-family: "Playfair Display", "Noto Serif SC", Georgia, "Songti SC", serif;
  font-size: 20px;
  line-height: 1.5;
  color: hsl(var(--foreground));
}
:where(.arte2-legal) :where(h1) { font-size: 24px; }
:where(.arte2-legal) :where(h3) { font-size: 17px; }
:where(.arte2-legal) :where(p) { margin: 0 0 1em; }
:where(.arte2-legal) :where(ul, ol) { margin: 0 0 1em; padding-left: 1.5em; }
:where(.arte2-legal) :where(ul) { list-style: disc; }
:where(.arte2-legal) :where(ol) { list-style: decimal; }
:where(.arte2-legal) :where(li) { margin-bottom: .4em; }

/* ---------- 13. 團隊簡介「閱讀更多」----------
   定稿版 v20 給每位高管加了截斷 + Read more 按鈕，但靜態導出版那個按鈕是死的
   （shim 裡沒有對應邏輯，點了沒反應）。這裡做成真正的展開／收合，
   並與源碼 TeamBio 元件一致：按鈕**無條件顯示**，展開時文字變 Show less。 */
.arte2-bio-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  overflow: hidden;
}
/* 展開態：解除截斷。選擇器優先級（0,3,0）高於 Tailwind 的 .line-clamp-4（0,1,0） */
.arte2-bio.is-open .arte2-bio-text {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}
.arte2-bio-toggle {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.arte2-bio-toggle svg { transition: transform .3s ease; }
.arte2-bio.is-open .arte2-bio-toggle svg { transform: rotate(180deg); }

