/* =====================================================================
 * 自由組裝頁 — 區塊樣式（blocks_page.php 使用）
 * 各區塊自帶版面，依協會配色系統，與前台一致
 * ===================================================================== */

.blk { position: relative; }
.blk .container { max-width: var(--maxw, 1200px); margin: 0 auto; padding: 0 24px; }

/* 交錯背景：奇數白、偶數米色，產生節奏感
   ★ 排除「自帶背景色」的區塊（數據統計綠底、CTA 漸層、主視覺）：
     否則它們落在偶數位時會被米色蓋掉 → 白字看不見。 */
.blk.section:nth-of-type(even):not(.blk-stats-sec):not(.blk-cta):not(.blk-hero) { background: var(--c-bg-alt, #F2EBDD); }

/* ---------- 共用內文排版 ---------- */
.blk-prose { color: var(--c-text, #2C3E36); line-height: 1.9; font-size: 16px; }
.blk-prose p { margin-bottom: 16px; }
.blk-prose h2, .blk-prose h3, .blk-prose h4 { margin: 24px 0 12px; color: var(--c-primary-dark, #355C53); }
.blk-prose ul, .blk-prose ol { margin: 0 0 16px 22px; }
.blk-prose li { margin-bottom: 6px; }
.blk-prose a { color: var(--c-primary, #4A7C6F); text-decoration: underline; }
.blk-prose img { border-radius: 12px; margin: 12px 0; }
.blk-prose blockquote { border-left: 4px solid var(--c-accent, #E89B7B); padding: 8px 18px; margin: 16px 0; color: var(--c-text-soft, #6B7570); background: rgba(232,155,123,.06); border-radius: 0 8px 8px 0; }
.blk-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; }
.blk-prose th, .blk-prose td { border: 1px solid var(--c-divider, #E8E2D5); padding: 10px 14px; text-align: left; }
.blk-prose th { background: var(--c-bg-alt, #F2EBDD); }

/* ---------- HERO ---------- */
.blk-hero { padding: 150px 0 90px; text-align: center; overflow: hidden; }
.blk-hero.has-bg { color: #fff; }
.blk-hero-bg { position: absolute; inset: 0; z-index: 0; }
.blk-hero-bg img { width: 100%; height: 100%; object-fit: cover; }
.blk-hero.has-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(53,92,83,.82), rgba(74,124,111,.6)); z-index: 1; }
.blk-hero-inner { position: relative; z-index: 2; }
.blk-hero-title { font-size: clamp(30px, 5vw, 52px); font-weight: 700; line-height: 1.25; margin: 8px 0 18px; }
.blk-hero.has-bg .blk-hero-title { color: #fff; }
.blk-hero-title .accent { color: var(--c-accent, #E89B7B); }
.blk-hero-sub { max-width: 640px; margin: 0 auto 28px; font-size: 17px; line-height: 1.85; opacity: .95; }
.blk-hero.has-bg .eyebrow { color: var(--c-accent, #E89B7B); }

/* ---------- RICH ---------- */
.blk-rich.blk-center { text-align: center; }
.blk-rich.blk-center .blk-prose { text-align: left; }

/* ---------- TEXT + IMAGE ---------- */
.blk-ti { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.blk-ti.img-right .blk-ti-media { order: 2; }
.blk-ti-media img { width: 100%; border-radius: var(--r-lg, 24px); box-shadow: var(--shadow-md, 0 8px 24px rgba(44,62,54,.10)); display: block; }
.blk-ti-text .eyebrow { margin-bottom: 10px; }

/* ---------- CARDS ---------- */
.blk-cards { display: grid; gap: 24px; }
.blk-cards.cols-2 { grid-template-columns: repeat(2, 1fr); }
.blk-cards.cols-3 { grid-template-columns: repeat(3, 1fr); }
.blk-cards.cols-4 { grid-template-columns: repeat(4, 1fr); }
.blk-card { background: #fff; border: 1px solid var(--c-divider, #E8E2D5); border-radius: var(--r-md, 16px); padding: 32px 26px; text-align: center; transition: all .35s var(--ease, cubic-bezier(.22,.61,.36,1)); text-decoration: none; color: inherit; display: block; }
a.blk-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md, 0 8px 24px rgba(44,62,54,.10)); border-color: var(--c-primary-light, #6FA092); }
.blk-card-icon { width: 64px; height: 64px; margin: 0 auto 18px; border-radius: 50%; background: rgba(74,124,111,.1); color: var(--c-primary, #4A7C6F); display: flex; align-items: center; justify-content: center; overflow: hidden; transition: all .35s var(--ease); }
.blk-card-icon svg { width: 30px; height: 30px; }
.blk-card-icon img { width: 100%; height: 100%; object-fit: cover; }
a.blk-card:hover .blk-card-icon { background: var(--c-accent, #E89B7B); color: #fff; transform: scale(1.08); }
.blk-card-title { font-size: 19px; margin-bottom: 8px; color: var(--c-primary-dark, #355C53); }
.blk-card-desc { font-size: 14.5px; color: var(--c-text-soft, #6B7570); line-height: 1.75; }
.blk-card-link { display: inline-block; margin-top: 14px; font-size: 14px; color: var(--c-primary, #4A7C6F); font-weight: 500; }
.blk-card-link .arrow { transition: transform .3s var(--ease); display: inline-block; }
a.blk-card:hover .blk-card-link .arrow { transform: translateX(4px); }

/* ---------- ACCORDION ---------- */
.blk-accordion { max-width: 880px; margin: 0 auto; }
.blk-acc-item { background: #fff; border: 1px solid var(--c-divider, #E8E2D5); border-radius: var(--r-md, 16px); margin-bottom: 14px; overflow: hidden; transition: all .3s var(--ease); }
.blk-acc-item.open { box-shadow: var(--shadow-md, 0 8px 24px rgba(44,62,54,.10)); border-color: var(--c-primary-light, #6FA092); }
.blk-acc-head { display: flex; align-items: center; gap: 18px; padding: 22px 26px; cursor: pointer; user-select: none; }
.blk-acc-item.open .blk-acc-head { background: linear-gradient(90deg, rgba(74,124,111,.06), transparent); }
.blk-acc-num { flex-shrink: 0; width: 42px; height: 42px; border-radius: 50%; background: rgba(74,124,111,.1); color: var(--c-primary, #4A7C6F); display: flex; align-items: center; justify-content: center; font-family: 'Noto Serif TC', serif; font-weight: 900; transition: all .3s var(--ease); }
.blk-acc-item.open .blk-acc-num { background: var(--c-accent, #E89B7B); color: #fff; }
.blk-acc-q { flex: 1; font-size: 18px; font-weight: 700; color: var(--c-text, #2C3E36); }
.blk-acc-icon { flex-shrink: 0; font-size: 22px; color: var(--c-text-soft, #6B7570); transition: transform .35s var(--ease); }
.blk-acc-item.open .blk-acc-icon { transform: rotate(180deg); color: var(--c-primary, #4A7C6F); }
.blk-acc-body { max-height: 0; overflow: hidden; transition: max-height .5s var(--ease); }
.blk-acc-a { padding: 0 26px 26px 86px; }
@media (max-width: 600px) { .blk-acc-a { padding: 0 22px 22px 22px; } }

/* ---------- GALLERY ---------- */
.blk-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.blk-gallery-item { margin: 0; border-radius: var(--r-md, 16px); overflow: hidden; box-shadow: var(--shadow-sm, 0 2px 8px rgba(44,62,54,.06)); background: #fff; transition: all .35s var(--ease); }
.blk-gallery-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-md, 0 8px 24px rgba(44,62,54,.10)); }
.blk-gallery-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .5s var(--ease); }
.blk-gallery-item:hover img { transform: scale(1.05); }
.blk-gallery-item figcaption { padding: 12px 14px; font-size: 13.5px; color: var(--c-text-soft, #6B7570); text-align: center; }

/* ---------- STATS ---------- */
.blk-stats-sec { background: linear-gradient(135deg, var(--c-primary, #4A7C6F), var(--c-primary-dark, #355C53)); color: #fff; }
.blk-stats-sec .section-title, .blk-stats-sec .eyebrow { color: #fff; }
.blk-stats-sec .eyebrow { color: var(--c-accent, #E89B7B); }
.blk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 32px; text-align: center; }
.blk-stat-num { font-family: 'Noto Serif TC', serif; font-size: 52px; font-weight: 900; color: var(--c-accent, #E89B7B); line-height: 1; }
.blk-stat-unit { font-size: 24px; margin-left: 2px; }
.blk-stat-label { margin-top: 10px; font-size: 15px; color: rgba(255,255,255,.85); }

/* ---------- CTA ---------- */
.blk-cta { text-align: center; }
.blk-cta.theme-green { background: linear-gradient(135deg, var(--c-primary, #4A7C6F), var(--c-primary-dark, #355C53)); color: #fff; }
.blk-cta.theme-accent { background: linear-gradient(135deg, var(--c-accent, #E89B7B), var(--c-accent-dark, #D4825F)); color: #fff; }
.blk-cta-inner { max-width: 720px; margin: 0 auto; }
.blk-cta-title { font-size: clamp(26px, 4vw, 38px); color: #fff; margin-bottom: 14px; }
.blk-cta-sub { font-size: 17px; line-height: 1.85; opacity: .95; margin-bottom: 28px; }

/* ---------- QUOTE ---------- */
.blk-quote-sec { background: var(--c-bg-alt, #F2EBDD); }
.blk-quote { max-width: 820px; margin: 0 auto; text-align: center; position: relative; padding: 20px; }
.blk-quote::before { content: '"'; font-family: 'Noto Serif TC', serif; font-size: 120px; color: var(--c-accent, #E89B7B); opacity: .25; position: absolute; top: -30px; left: 50%; transform: translateX(-50%); line-height: 1; }
.blk-quote p { font-family: 'Noto Serif TC', serif; font-size: clamp(20px, 3vw, 28px); font-weight: 500; line-height: 1.7; color: var(--c-primary-dark, #355C53); position: relative; }
.blk-quote cite { display: block; margin-top: 18px; font-style: normal; font-size: 15px; color: var(--c-text-soft, #6B7570); }

/* ---------- RWD ---------- */
@media (max-width: 860px) {
  .blk-ti { grid-template-columns: 1fr; gap: 28px; }
  .blk-ti.img-right .blk-ti-media { order: 0; }
  .blk-cards.cols-3, .blk-cards.cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .blk-hero { padding: 120px 0 64px; }
  .blk-cards.cols-2, .blk-cards.cols-3, .blk-cards.cols-4 { grid-template-columns: 1fr; }
}

/* ====== 文章列表（post_list 區塊） ====== */
.blk-postlist .post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.post-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--c-divider,#E8E2D5); border-radius:var(--r-md,16px); overflow:hidden; text-decoration:none; color:inherit; transition:all .4s var(--ease,cubic-bezier(.22,.61,.36,1)); }
.post-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg,0 20px 50px rgba(44,62,54,.14)); border-color:var(--c-primary-light,#6FA092); }
.post-card-cover { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--c-bg-alt,#F2EBDD); }
.post-card-cover img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.post-card:hover .post-card-cover img { transform:scale(1.06); }
.post-card-noimg { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:40px; opacity:.3; }
.post-card-tag { position:absolute; top:12px; left:12px; background:var(--c-accent,#E89B7B); color:#fff; font-size:12px; padding:4px 12px; border-radius:999px; font-weight:500; }
.post-card-body { padding:20px 22px 24px; display:flex; flex-direction:column; flex:1; }
.post-card-date { font-size:12.5px; color:var(--c-text-soft,#6B7570); letter-spacing:.05em; margin-bottom:8px; }
.post-card-title { font-size:18px; line-height:1.5; margin-bottom:8px; color:var(--c-primary-dark,#355C53); }
.post-card-excerpt { font-size:14px; color:var(--c-text-soft,#6B7570); line-height:1.7; margin-bottom:14px; flex:1; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.post-card-more { font-size:13.5px; color:var(--c-primary,#4A7C6F); font-weight:500; }
.post-card-more .arrow { display:inline-block; transition:transform .3s var(--ease); }
.post-card:hover .post-card-more .arrow { transform:translateX(4px); }

/* 分頁 */
.post-pager { display:flex; justify-content:center; align-items:center; gap:6px; margin-top:48px; flex-wrap:wrap; }
.post-pager-btn, .post-pager-num { display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 12px; border-radius:8px; border:1px solid var(--c-divider,#E8E2D5); background:#fff; color:var(--c-text,#2C3E36); font-size:14px; text-decoration:none; transition:all .2s; }
.post-pager-btn:hover, .post-pager-num:hover { border-color:var(--c-primary,#4A7C6F); color:var(--c-primary,#4A7C6F); }
.post-pager-num.active { background:var(--c-primary,#4A7C6F); color:#fff; border-color:var(--c-primary,#4A7C6F); }

/* ====== 文章內頁（post_detail） ====== */
.post-detail-hero { padding:130px 0 0; background:var(--c-bg-alt,#F2EBDD); }
.post-detail-hero.has-cover { padding-top:0; }
.post-detail-cover { width:100%; max-height:440px; overflow:hidden; }
.post-detail-cover img { width:100%; height:100%; max-height:440px; object-fit:cover; display:block; }
.post-detail-head { padding:36px 24px 28px; max-width:820px; }
.post-detail-head .breadcrumb { font-size:13px; color:var(--c-text-soft,#6B7570); margin-bottom:14px; }
.post-detail-head .breadcrumb a { color:var(--c-primary,#4A7C6F); }
.post-detail-head .breadcrumb .sep { margin:0 8px; opacity:.5; }
.post-detail-tag { display:inline-block; background:var(--c-accent,#E89B7B); color:#fff; font-size:12.5px; padding:4px 14px; border-radius:999px; margin-bottom:14px; }
.post-detail-head h1 { font-size:clamp(26px,4vw,40px); line-height:1.35; color:var(--c-primary-dark,#355C53); margin-bottom:12px; }
.post-detail-date { color:var(--c-text-soft,#6B7570); font-size:14px; letter-spacing:.05em; }
.post-detail-body { max-width:820px; padding:44px 24px 80px; }
.post-detail-foot { margin-top:48px; padding-top:28px; border-top:1px solid var(--c-divider,#E8E2D5); }

@media (max-width:860px){ .blk-postlist .post-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .blk-postlist .post-grid { grid-template-columns:1fr; } .post-detail-hero { padding-top:100px; } }

/* ===================== 相簿牆（活動花絮） ===================== */
.blk-albumwall .album-wall{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.album-wall-card{ display:block; background:#fff; border-radius:16px; overflow:hidden; text-decoration:none;
  box-shadow:0 4px 18px rgba(53,92,83,.07); transition:transform .35s var(--ease,cubic-bezier(.22,1,.36,1)), box-shadow .35s; }
.album-wall-card:hover{ transform:translateY(-6px); box-shadow:0 16px 38px rgba(53,92,83,.16); }
.album-wall-cover{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#E7EFEA; }
.album-wall-cover img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease,ease); }
.album-wall-card:hover .album-wall-cover img{ transform:scale(1.07); }
.album-wall-noimg{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:46px; color:#A9C0B5; }
.album-wall-veil{ position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.30), transparent 46%); opacity:.9; }
.album-wall-count{ position:absolute; left:12px; bottom:12px; z-index:2; color:#fff; font-size:13px; font-weight:600;
  background:rgba(0,0,0,.42); backdrop-filter:blur(2px); padding:4px 11px; border-radius:30px; }
.album-wall-body{ padding:16px 18px 20px; }
.album-wall-date{ color:var(--c-primary,#4A7C6F); font-size:12.5px; font-weight:600; letter-spacing:.02em; margin-bottom:5px; }
.album-wall-title{ font-size:18px; color:#2C3E36; margin:0 0 6px; line-height:1.4; }
.album-wall-desc{ color:var(--c-text-soft,#6B7570); font-size:13.5px; line-height:1.6; margin:0 0 12px; }
.album-wall-more{ display:inline-flex; align-items:center; gap:6px; color:var(--c-primary,#4A7C6F); font-weight:600; font-size:14px; }
.album-wall-more .arrow{ transition:transform .3s var(--ease,ease); }
.album-wall-card:hover .album-wall-more .arrow{ transform:translateX(5px); }
@media (max-width:860px){ .blk-albumwall .album-wall{ grid-template-columns:repeat(2,1fr); gap:18px; } }
@media (max-width:540px){ .blk-albumwall .album-wall{ grid-template-columns:1fr; } }

/* ===================== 相簿內頁 ===================== */
.album-detail-hero{ padding-top:140px; padding-bottom:30px; background:linear-gradient(180deg,#F4F8F5,transparent); }
.album-detail-hero h1{ font-size:clamp(26px,4vw,38px); color:#2C3E36; margin:10px 0 12px; }
.album-detail-meta{ display:flex; gap:18px; flex-wrap:wrap; color:var(--c-text-soft,#6B7570); font-size:14px; }
.album-detail-desc{ margin-top:14px; max-width:760px; color:#4a564f; line-height:1.85; font-size:15px; }
.album-detail-body{ padding-bottom:60px; }
/* 統一 4:3 網格：縮圖一致裁切＝精緻；點開看完整原圖（燈箱用 contain 不裁切） */
.album-masonry{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:8px; }
.album-shot{ margin:0; position:relative; aspect-ratio:4/3; border-radius:12px; overflow:hidden; cursor:zoom-in;
  background:#E7EFEA; box-shadow:0 3px 14px rgba(53,92,83,.08); transition:transform .3s var(--ease,ease), box-shadow .3s; }
.album-shot:focus{ outline:3px solid var(--c-primary,#4A7C6F); outline-offset:2px; }
.album-shot img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease,ease); }
.album-shot:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(53,92,83,.18); }
.album-shot:hover img{ transform:scale(1.05); }
.album-shot figcaption{ position:absolute; left:0; right:0; bottom:0; padding:18px 12px 10px; color:#fff; font-size:13px;
  background:linear-gradient(to top, rgba(0,0,0,.6), transparent); opacity:0; transition:opacity .3s; }
.album-shot:hover figcaption{ opacity:1; }
.album-detail-foot{ margin-top:34px; text-align:center; }
@media (max-width:860px){ .album-masonry{ grid-template-columns:repeat(2,1fr); gap:12px; } .album-detail-hero{ padding-top:108px; } }
@media (max-width:520px){ .album-masonry{ grid-template-columns:repeat(2,1fr); gap:10px; } }

/* ===================== 燈箱 ===================== */
.lightbox{ position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center;
  background:rgba(18,26,22,.93); backdrop-filter:blur(4px); }
.lightbox.open{ display:flex; animation:lbFade .25s ease; }
@keyframes lbFade{ from{opacity:0} to{opacity:1} }
.lb-stage{ margin:0; max-width:92vw; max-height:86vh; display:flex; flex-direction:column; align-items:center; }
.lb-stage img{ max-width:92vw; max-height:80vh; border-radius:8px; box-shadow:0 18px 50px rgba(0,0,0,.5); object-fit:contain; }
.lb-stage figcaption{ color:#E8EFEA; margin-top:14px; font-size:14.5px; text-align:center; max-width:80vw; }
.lb-close{ position:absolute; top:18px; right:22px; width:46px; height:46px; border:0; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:20px; line-height:1; transition:background .2s; }
.lb-close:hover{ background:rgba(255,255,255,.26); }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:54px; height:54px; border:0; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.12); color:#fff; font-size:32px; line-height:1; transition:background .2s; }
.lb-nav:hover{ background:rgba(255,255,255,.26); }
.lb-prev{ left:18px; } .lb-next{ right:18px; }
.lb-counter{ position:absolute; bottom:20px; left:0; right:0; text-align:center; color:rgba(255,255,255,.72); font-size:13.5px; }
@media (max-width:600px){
  .lb-nav{ width:44px; height:44px; font-size:26px; } .lb-prev{ left:6px; } .lb-next{ right:6px; }
  .lb-close{ top:10px; right:12px; width:40px; height:40px; }
  .lb-stage img{ max-height:74vh; }
}

/* ===== 柔和區塊進場（由 main.js 在折疊線以下的 .blk.section 加上 .soft-in）===== */
.soft-in{ opacity:0; transform: translateY(26px); transition: opacity .8s var(--ease,cubic-bezier(.22,.61,.36,1)), transform .8s var(--ease,cubic-bezier(.22,.61,.36,1)); will-change: opacity, transform; }
.soft-in.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .soft-in{ opacity:1 !important; transform:none !important; } }

/* ===== 文章分享 + 相關文章 ===== */
.post-share{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:8px 0 24px; padding-top:20px; border-top:1px solid var(--c-divider,#E8E2D5); }
.post-share-label{ font-size:14px; color:var(--c-text-soft,#6B7570); }
.post-share-btn{ display:inline-flex; align-items:center; justify-content:center; gap:5px; height:36px; padding:0 14px; border-radius:999px; font-size:13.5px; font-weight:700; border:0; cursor:pointer; text-decoration:none; color:#fff; transition:transform .2s var(--ease,ease), opacity .2s; }
.post-share-btn:hover{ transform:translateY(-2px); }
.post-share-btn.fb{ background:#1877F2; width:36px; padding:0; font-family:Georgia,serif; }
.post-share-btn.line{ background:#06C755; }
.post-share-btn.copy{ background:var(--c-bg-alt,#F2EBDD); color:var(--c-primary-dark,#355C53); }
.post-related{ margin-top:40px; padding-top:8px; }
.post-related-title{ font-size:22px; color:var(--c-primary-dark,#355C53); margin-bottom:22px; text-align:center; }

/* ===================================================================
   組織架構圖（org_chart 區塊）— 配合品牌綠／奶油配色，RWD 自動堆疊
   =================================================================== */
.orgchart-sec .section-head { margin-bottom: 36px; }
.orgchart { max-width: 1080px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.orgchart .oc-box {
  border-radius: 12px; padding: 14px 20px; text-align: center; line-height: 1.5;
  font-weight: 600; letter-spacing: .01em; box-shadow: 0 4px 14px rgba(44,62,54,.08);
  border: 1px solid transparent;
}
/* 頂層：協會全名 */
.orgchart .oc-tier-root { width: 100%; display: flex; justify-content: center; }
.orgchart .oc-root {
  background: linear-gradient(135deg, #4A7C6F 0%, #355C53 100%); color: #fff;
  font-size: clamp(16px, 2vw, 20px); font-weight: 700; padding: 18px 34px; max-width: 640px;
  box-shadow: 0 8px 22px rgba(53,92,83,.28);
}
/* 垂直連接線 */
.orgchart .oc-drop { width: 2px; height: 26px; background: var(--c-primary-light, #6FA092); display: block; }
.orgchart .oc-drop-sm { height: 16px; margin: 4px auto; }

/* 治理層：顧問 ｜ 理事會→理事長→總幹事 ｜ 監事會 */
.oc-gov { display: flex; justify-content: center; align-items: flex-start; gap: clamp(20px, 6vw, 80px); flex-wrap: wrap; }
.oc-gov-side { display: flex; flex-direction: column; gap: 14px; padding-top: 6px; }
.oc-gov-chain { display: flex; flex-direction: column; align-items: center; }
.oc-box.oc-soft { background: var(--c-bg-alt, #F2EBDD); color: var(--c-primary-dark, #355C53); min-width: 116px; }
.oc-box.oc-lead { background: #fff; color: var(--c-primary-dark, #355C53); border-color: var(--c-divider, #E8E2D5); min-width: 132px; position: relative; }
.oc-box.oc-lead::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--c-primary, #4A7C6F); border-radius: 12px 0 0 12px; }

/* 部門層：連接匯流排 + 各部門一欄 */
.oc-depts {
  display: flex; justify-content: center; gap: clamp(14px, 3vw, 30px); flex-wrap: wrap;
  width: 100%; position: relative; padding-top: 26px;
}
/* 匯流排橫線（桌機才畫，避免手機堆疊時線斷掉） */
@media (min-width: 861px) {
  .oc-depts::before { content: ''; position: absolute; top: 0; left: 12.5%; right: 12.5%; height: 2px; background: var(--c-primary-light, #6FA092); }
  .oc-dept { position: relative; }
  .oc-dept::before { content: ''; position: absolute; top: -26px; left: 50%; width: 2px; height: 26px; background: var(--c-primary-light, #6FA092); }
}
.oc-dept { flex: 1 1 200px; max-width: 250px; display: flex; flex-direction: column; align-items: stretch; }
.oc-box.oc-dept-head {
  background: var(--c-primary, #4A7C6F); color: #fff; font-size: 15.5px; padding: 15px 16px;
  box-shadow: 0 6px 16px rgba(74,124,111,.22);
}
.oc-units { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; position: relative; }
.oc-box.oc-unit {
  background: #fff; color: var(--c-text, #2C3E36); font-weight: 500; font-size: 14px;
  border-color: var(--c-divider, #E8E2D5); padding: 12px 14px; box-shadow: 0 2px 8px rgba(44,62,54,.06);
  transition: transform .2s var(--ease, ease), box-shadow .2s;
}
.oc-box.oc-unit:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(44,62,54,.12); border-color: var(--c-primary-light, #6FA092); }

/* 手機：整體堆疊、線改直向、字縮小 */
@media (max-width: 860px) {
  .oc-gov { gap: 18px; }
  .oc-gov-side { flex-direction: row; flex-wrap: wrap; justify-content: center; padding-top: 0; }
  .oc-depts { flex-direction: column; align-items: center; gap: 22px; padding-top: 22px; }
  .oc-dept { max-width: 420px; width: 100%; }
  .oc-units { align-items: center; }
  .oc-box.oc-unit { width: 100%; max-width: 420px; }
}
