/* ============================================================
   竹北勝利堂 — Cassiopeia 子樣板樣式
   要換風格，改下面這一段就好。其他地方都引用這些變數。
   ============================================================ */
:root {
  --vc-accent:      #8C5E31;   /* 主色：按鈕、連結、標籤 */
  --vc-accent-soft: #F2EDE5;   /* 主色淡底 */
  --vc-accent-lite: #E4C79E;   /* 深底上的主色 */
  --vc-ink:         #23211E;   /* 主要文字 / 深色區塊 */
  --vc-ink-2:       #57534C;   /* 次要文字 */
  --vc-muted:       #8B857B;   /* 註解文字 */
  --vc-bg:          #FBFAF8;   /* 頁面底色 */
  --vc-bg-2:        #F3F0EA;   /* 交替區塊底色 */
  --vc-line:        #E6E2DB;   /* 線條、卡片外框 */
  --vc-radius:      6px;
  --vc-max:         1180px;    /* 內容最大寬度 */
  --vc-font:        "Noto Sans TC", "Helvetica Neue", Helvetica, sans-serif;
  --vc-font-title:  "Noto Serif TC", Georgia, serif;
}

/* ---------- 基礎 ---------- */
.vc-site { margin:0; background:var(--vc-bg); color:var(--vc-ink); font-family:var(--vc-font); font-size:16px; line-height:1.8; -webkit-font-smoothing:antialiased; }
.vc-site h1,.vc-site h2,.vc-site h3 { font-family:var(--vc-font-title); color:var(--vc-ink); line-height:1.4; font-weight:700; }
.vc-site h1 { font-size:clamp(28px,4vw,44px); }
.vc-site h2 { font-size:clamp(24px,3vw,34px); }
.vc-site h3 { font-size:21px; }
.vc-site a { color:var(--vc-accent); text-decoration:none; }
.vc-site a:hover { color:var(--vc-ink); text-decoration:underline; }
.vc-site p { text-wrap:pretty; }
.vc-container { max-width:var(--vc-max); margin:0 auto; padding:0 28px; }
.wrapper-fluid .vc-container { max-width:none; }

/* ---------- topbar ---------- */
.vc-topbar { background:var(--vc-ink); color:#C9C4BA; font-size:13.5px; }
.vc-topbar .vc-container { display:flex; flex-wrap:wrap; gap:12px 22px; justify-content:space-between; align-items:center; padding-block:9px; }
.vc-topbar a { color:#C9C4BA; }
.vc-topbar a:hover { color:#fff; }
.vc-topbar .mod-languages ul { display:flex; gap:10px; list-style:none; margin:0; padding:0; }

/* ---------- header + 選單 ---------- */
.vc-header { background:var(--vc-bg); border-bottom:1px solid var(--vc-line); }
.vc-header.vc-sticky { position:sticky; top:0; z-index:60; }
.vc-header.is-scrolled { box-shadow:0 6px 24px -18px rgba(35,33,30,.6); }
.vc-header__inner { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:16px; }
.vc-brand { display:flex; align-items:center; gap:14px; text-decoration:none; }
.vc-brand__logo { height:40px; width:auto; }
.vc-brand__mark { width:34px; height:34px; border-radius:50%; background:var(--vc-accent); position:relative; flex:none; }
.vc-brand__mark::before,.vc-brand__mark::after { content:""; position:absolute; background:var(--vc-bg); }
.vc-brand__mark::before { left:50%; top:8px; width:2px; height:18px; transform:translateX(-50%); }
.vc-brand__mark::after  { top:14px; left:50%; width:12px; height:2px; transform:translateX(-50%); }
.vc-brand__text strong { display:block; font-family:var(--vc-font-title); font-size:20px; color:var(--vc-ink); letter-spacing:.04em; line-height:1.1; }
.vc-brand__text small  { display:block; font-size:10px; letter-spacing:.16em; color:var(--vc-accent); }

.vc-nav { display:flex; align-items:center; gap:28px; }
.vc-nav ul.mod-menu { display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.vc-nav .mod-menu__sub { position:absolute; min-width:220px; background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); box-shadow:0 20px 40px -26px rgba(35,33,30,.6); padding:10px 0; display:none; z-index:70; }
.vc-nav li { position:relative; }
.vc-nav li:hover > .mod-menu__sub, .vc-nav li:focus-within > .mod-menu__sub { display:block; }
.vc-nav .mod-menu__sub a { display:block; padding:9px 20px; font-size:15px; color:var(--vc-ink-2); }
.vc-nav .mod-menu__sub a:hover { background:var(--vc-accent-soft); color:var(--vc-accent); text-decoration:none; }
.vc-nav > ul > li > a { font-size:15.5px; font-weight:500; color:#3A372F; padding-block:6px; }
.vc-nav .current > a, .vc-nav .active > a { color:var(--vc-accent); box-shadow:inset 0 -2px 0 var(--vc-accent); }
.vc-nav__tools { display:flex; align-items:center; gap:14px; }
.vc-nav__tools input[type="search"],.vc-nav__tools input[type="text"] { border:1px solid var(--vc-line); border-radius:999px; padding:8px 16px; font:inherit; font-size:14px; background:#fff; }
.vc-burger { display:none; }

/* ---------- banner ---------- */
.vc-banner { position:relative; }
.vc-banner img { display:block; width:100%; height:clamp(340px,46vw,520px); object-fit:cover; }
.vc-banner .vc-banner__overlay { position:absolute; inset:0; display:flex; align-items:center;
  background:linear-gradient(90deg,rgba(20,19,17,.82) 0%,rgba(20,19,17,.55) 45%,rgba(20,19,17,.12) 100%); }
.vc-banner__text { max-width:560px; color:#FBFAF8; }
.vc-banner__text h1 { color:#FBFAF8; font-size:clamp(30px,4.2vw,52px); line-height:1.28; }
.vc-banner__eyebrow { font-size:12px; letter-spacing:.24em; color:var(--vc-accent-lite); font-weight:700; }

/* ---------- 按鈕 ---------- */
.vc-btn, .vc-site .btn-primary { display:inline-block; background:var(--vc-accent); color:#fff; border:0;
  padding:14px 30px; border-radius:999px; font-size:16px; font-weight:500; }
.vc-btn:hover, .vc-site .btn-primary:hover { background:var(--vc-ink); color:#fff; text-decoration:none; }
.vc-btn--ghost { background:transparent; border:1px solid rgba(251,250,248,.5); color:#FBFAF8; }
.vc-btn--ghost:hover { background:rgba(251,250,248,.12); }

/* ---------- 快速資訊卡（top-a） ---------- */
.vc-quickcards .vc-container { position:relative; z-index:2; }
/* 外層只負責定位，格線交給 .vc-quick */
.vc-quickcards .card { background:#fff; border:0; border-radius:0; padding:24px 26px; }
.vc-quickcards .card-header { background:none; border:0; padding:0; font-size:11px; letter-spacing:.16em; color:var(--vc-accent); font-weight:700; }
.vc-quickcards .card-body { padding:0; font-family:var(--vc-font-title); font-size:24px; }

/* ---------- 內容區 ---------- */
.vc-body { padding:64px 0; }
.vc-grid { display:grid; gap:44px; }
.vc-grid.has-sidebar { grid-template-columns:minmax(0,1fr) 320px; }
.vc-section { padding:74px 0; }
.vc-section--light { background:var(--vc-bg-2); border-block:1px solid var(--vc-line); }
.vc-section--dark { background:var(--vc-ink); color:#DAD5CC; }
.vc-section--dark h2,.vc-section--dark h3 { color:#FBFAF8; }
.vc-section--dark a { color:var(--vc-accent-lite); }

/* 卡片（模組 style="card"、文章列表） */
.vc-site .card { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); overflow:hidden; }
.vc-site .card-header { background:#fff; border-bottom:1px solid var(--vc-line); font-family:var(--vc-font-title); font-size:19px; padding:18px 24px; }
.vc-site .card-body { padding:22px 24px; }
.vc-section--dark .card { background:#2C2A27; border-color:#3E3A35; color:#DAD5CC; }

/* 文章 */
.com-content-article__body { font-size:16.5px; line-height:2; max-width:70ch; }
.com-content-article__body img { max-width:100%; height:auto; border-radius:var(--vc-radius); }
.com-content-article__info, .article-info { font-size:13px; color:var(--vc-muted); }
.com-content-category-blog__item { border-bottom:1px solid var(--vc-line); padding-bottom:32px; margin-bottom:32px; }
blockquote { border-left:3px solid var(--vc-accent); background:var(--vc-accent-soft); margin:28px 0; padding:18px 24px; font-family:var(--vc-font-title); }

/* 講道自訂欄位（講員 / 經文 / 系列） */
.fields-container .field-entry { display:inline-flex; gap:6px; font-size:13px; background:var(--vc-accent-soft);
  color:var(--vc-accent); padding:5px 11px; border-radius:3px; margin:0 8px 8px 0; }
.fields-container .field-entry .field-label { font-weight:700; }

/* 影音：任何 iframe 都自動 16:9 */
.vc-site iframe[src*="youtube"], .vc-site iframe[src*="youtu.be"] { width:100%; aspect-ratio:16/9; height:auto; border:0; border-radius:var(--vc-radius); }
.vc-site audio { width:100%; }

/* ---------- footer ---------- */
.vc-footer { background:var(--vc-ink); color:#B9B3A8; padding:64px 0 26px; font-size:13.5px; line-height:2; }
.vc-footer h3, .vc-footer .card-header { background:none; border:0; padding:0 0 14px; font-family:var(--vc-font);
  font-size:12px; letter-spacing:.16em; color:var(--vc-accent-lite); font-weight:700; }
.vc-footer .vc-container { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; }
.vc-footer a { color:#B9B3A8; }
.vc-footer a:hover { color:#fff; }
.vc-footer ul { list-style:none; margin:0; padding:0; }

.vc-backtop { position:fixed; right:22px; bottom:22px; width:44px; height:44px; border-radius:50%;
  background:var(--vc-accent); color:#fff; display:flex; align-items:center; justify-content:center; z-index:80; }

/* ---------- 手機 ---------- */
@media (max-width: 991px) {
  .vc-grid.has-sidebar { grid-template-columns:1fr; }
  .vc-footer .vc-container { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 767px) {
  .vc-container { padding:0 18px; }
  .vc-topbar { font-size:12.5px; }
  .vc-burger { display:block; width:44px; height:44px; border:1px solid var(--vc-line); border-radius:var(--vc-radius); background:#fff; position:relative; }
  .vc-burger span, .vc-burger span::before, .vc-burger span::after { content:""; position:absolute; left:12px; width:20px; height:2px; background:var(--vc-ink); }
  .vc-burger span { top:21px; } .vc-burger span::before { top:-7px; left:0; } .vc-burger span::after { top:7px; left:0; }
  .vc-nav { display:none; position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--vc-line); flex-direction:column; align-items:stretch; gap:0; padding:8px 18px 18px; }
  .vc-nav.is-open { display:flex; }
  .vc-nav ul.mod-menu { flex-direction:column; align-items:stretch; gap:0; }
  .vc-nav > ul > li > a { display:block; padding:14px 4px; border-bottom:1px solid var(--vc-line); }
  .vc-nav .mod-menu__sub { position:static; display:block; border:0; box-shadow:none; padding:0 0 8px 14px; }
  .vc-header__inner { padding-block:12px; }
  .vc-body, .vc-section { padding:44px 0; }
  .vc-footer .vc-container { grid-template-columns:1fr; gap:28px; }
  /* 手機上點擊目標不小於 44px */
  .vc-site a.vc-btn, .vc-site .btn { min-height:44px; display:inline-flex; align-items:center; }
}

/* 列印（週報、講章） */
@media print {
  .vc-topbar,.vc-header,.vc-banner,.vc-quickcards,.vc-section--dark,.vc-footer,.vc-backtop { display:none !important; }
  .vc-site { background:#fff; font-size:12pt; }
}


/* ============================================================
   首頁區塊元件（給「自訂 HTML」模組使用的 class）
   模組內容直接貼設計稿的 HTML，樣式都在這裡。
   ============================================================ */

/* 區塊標題列 */
.vc-sec-head { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-bottom:28px; flex-wrap:wrap; }
.vc-eyebrow { font-size:12px; letter-spacing:.2em; color:var(--vc-accent); font-weight:700; margin:0; }
.vc-sec-head h2 { margin:10px 0 0; }
.vc-section--dark .vc-eyebrow { color:var(--vc-accent-lite); }

/* 通用格線 */
.vc-cols-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.vc-cols-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.vc-cols-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.vc-split  { display:grid; grid-template-columns:1.55fr 1fr; gap:28px; }
.vc-split-b{ display:grid; grid-template-columns:1.35fr 1fr; gap:44px; }

/* 四格快速資訊卡（top-a） */
.vc-quick { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--vc-line);
  border:1px solid var(--vc-line); border-radius:var(--vc-radius); overflow:hidden;
  margin-top:-44px; position:relative; z-index:2; box-shadow:0 18px 40px -24px rgba(35,33,30,.5); }
.vc-quick > div { background:#fff; padding:24px 26px; }
.vc-quick .vc-quick__label { font-size:11px; letter-spacing:.16em; color:var(--vc-accent); font-weight:700; }
.vc-quick strong { display:block; font-family:var(--vc-font-title); font-size:24px; color:var(--vc-ink); font-weight:700; margin-top:10px; }
.vc-quick small { display:block; font-size:13px; color:var(--vc-ink-2); margin-top:6px; }

/* 標籤 */
.vc-chip { display:inline-block; font-size:12.5px; background:var(--vc-accent-soft); color:var(--vc-accent);
  padding:5px 11px; border-radius:3px; margin:0 6px 6px 0; }
.vc-chip--plain { background:none; color:var(--vc-muted); padding-inline:0; }

/* 本週信息大卡 */
.vc-sermon { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); overflow:hidden; }
.vc-sermon__body { padding:28px 30px 30px; }
.vc-sermon__body h3 { font-size:30px; margin:6px 0 0; }
.vc-sermon__meta { font-size:15px; color:var(--vc-ink-2); margin-top:12px; }
.vc-sermon__links { display:flex; gap:22px; margin-top:20px; font-size:14px; flex-wrap:wrap; }

/* 音檔播放列（<audio> 外框） */
.vc-audio { margin-top:24px; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:16px 18px; background:var(--vc-bg); }
.vc-audio audio { width:100%; display:block; }
.vc-audio__tools { display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.vc-audio__tools a { font-size:12.5px; border:1px solid var(--vc-line); border-radius:999px; padding:6px 12px; color:var(--vc-ink-2); }

/* 近期信息小清單 */
.vc-list { display:flex; flex-direction:column; gap:14px; }
.vc-list__item { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:16px 18px; display:flex; gap:14px; align-items:center; }
.vc-list__item img { width:74px; height:48px; object-fit:cover; border-radius:4px; flex:none; }
.vc-list__item strong { display:block; font-size:15px; font-weight:500; color:var(--vc-ink); line-height:1.5; }
.vc-list__item small { display:block; font-size:12.5px; color:var(--vc-muted); margin-top:5px; }

/* 直播卡 */
.vc-live { background:var(--vc-ink); border-radius:var(--vc-radius); padding:22px 20px; color:#DAD5CC; }
.vc-live .vc-eyebrow { color:var(--vc-accent-lite); }
.vc-live p { font-size:14px; line-height:1.8; margin:10px 0 0; }
.vc-live a { display:inline-block; margin-top:14px; border:1px solid rgba(228,199,158,.5);
  color:var(--vc-accent-lite); padding:9px 16px; border-radius:999px; font-size:13px; }

/* 文章卡 */
.vc-card { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  overflow:hidden; display:flex; flex-direction:column; }
.vc-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.vc-card__body { padding:22px 24px 26px; display:flex; flex-direction:column; gap:10px; flex:1; }
.vc-card__body h3 { margin:0; font-size:21px; }
.vc-card__body p { margin:0; font-size:14px; color:var(--vc-ink-2); line-height:1.85; }
.vc-card__body small { font-size:12.5px; color:var(--vc-muted); margin-top:auto; padding-top:12px; }

/* 活動列 */
.vc-events { display:flex; flex-direction:column; gap:12px; }
.vc-event { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:20px 24px; display:flex; gap:22px; align-items:center; }
.vc-event__date { text-align:center; flex:none; width:58px; }
.vc-event__date span { display:block; font-size:11px; letter-spacing:.1em; color:var(--vc-accent); font-weight:700; }
.vc-event__date strong { display:block; font-family:var(--vc-font-title); font-size:30px; line-height:1.1; }
.vc-event__body { flex:1; min-width:0; }
.vc-event__body strong { display:block; font-size:17px; font-weight:500; }
.vc-event__body small { display:block; font-size:13.5px; color:var(--vc-ink-2); margin-top:6px; }

/* 聚會時間表 */
.vc-timetable { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); padding:24px 26px; }
.vc-timetable div { display:flex; justify-content:space-between; gap:16px; padding:13px 0;
  border-bottom:1px solid #EFEBE4; font-size:14.5px; }
.vc-timetable time { color:var(--vc-ink-2); font-family:ui-monospace,monospace; font-size:13px; white-space:nowrap; }

/* 影音牆 */
.vc-videowall figure { margin:0; }
.vc-videowall img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:5px; display:block; }
.vc-videowall figcaption { font-size:14.5px; color:#EDEAE4; margin-top:12px; line-height:1.6; }
.vc-videowall small { font-size:12.5px; color:var(--vc-muted); }

/* 新朋友邀請 */
.vc-invite { grid-column:span 2; background:var(--vc-accent-soft); border-radius:var(--vc-radius); padding:44px 46px; }
.vc-invite h2 { font-size:30px; margin:0; }
.vc-invite p { font-size:15.5px; color:var(--vc-ink-2); line-height:1.95; margin:16px 0 0; max-width:560px; }
.vc-invite .vc-actions { display:flex; gap:12px; margin-top:26px; flex-wrap:wrap; }
.vc-btn--soft { background:transparent; border:1px solid #D8CFC0; color:var(--vc-ink); }

/* 頁尾欄位 */
.vc-footer__col strong { color:#FBFAF8; }
.vc-footer .vc-social { display:flex; gap:12px; margin-top:18px; flex-wrap:wrap; }
.vc-footer .vc-social a { border:1px solid #45413B; border-radius:999px; padding:6px 14px; font-size:12.5px; }
.vc-footer .vc-stats { display:flex; gap:18px; font-family:ui-monospace,monospace; font-size:12.5px; color:#7C766C; }

@media (max-width: 991px) {
  .vc-cols-3, .vc-cols-4 { grid-template-columns:repeat(2,1fr); }
  .vc-split, .vc-split-b { grid-template-columns:1fr; }
  .vc-quick { grid-template-columns:repeat(2,1fr); margin-top:-24px; }
  .vc-invite { grid-column:auto; padding:32px 28px; }
}
@media (max-width: 767px) {
  .vc-cols-2, .vc-cols-3, .vc-cols-4 { grid-template-columns:1fr; }
  .vc-quick { grid-template-columns:1fr; margin-top:-16px; }
  .vc-sermon__body { padding:20px; }
  .vc-sermon__body h3 { font-size:24px; }
  .vc-event { padding:16px 18px; gap:16px; }
}


/* 圖片佔位（還沒放照片時用） */
.vc-ph { background:repeating-linear-gradient(135deg,#DFDAD1 0 12px,#E8E4DC 12px 24px); border-radius:5px; display:block; }
.vc-ph--16x9 { aspect-ratio:16/9; }
.vc-ph--16x10 { aspect-ratio:16/10; }
.vc-ph--thumb { width:74px; height:48px; flex:none; }
.vc-section--dark .vc-ph { background:repeating-linear-gradient(135deg,#35322E 0 10px,#3E3A35 10px 20px); }
.vc-stack { display:flex; flex-direction:column; gap:14px; }
.vc-footer__bottom { grid-column:1/-1; display:flex; justify-content:space-between; align-items:center;
  gap:20px; flex-wrap:wrap; padding-top:22px; border-top:1px solid #35322E; font-size:12.5px; color:#7C766C; }
.vc-topbar__links { display:flex; gap:18px; flex-wrap:wrap; }


/* ============================================================
   v1.5 修正：模組包裝層與連結色權重
   ============================================================ */

/* 1. 按鈕文字被 .vc-site a 的顏色蓋掉 → 提高權重 */
.vc-site a.vc-btn, .vc-site .vc-btn { color:#fff; }
.vc-site a.vc-btn:hover, .vc-site .vc-btn:hover { color:#fff; text-decoration:none; }
.vc-site a.vc-btn--ghost, .vc-site .vc-btn--ghost { color:#FBFAF8; background:transparent; border:1px solid rgba(251,250,248,.5); }
.vc-site a.vc-btn--ghost:hover { background:rgba(251,250,248,.14); color:#fff; }
.vc-site a.vc-btn--soft, .vc-site .vc-btn--soft { color:var(--vc-ink); background:transparent; border:1px solid #D8CFC0; }
.vc-site a.vc-btn--soft:hover { background:#fff; color:var(--vc-ink); }
.vc-banner__text .vc-btn { margin-right:10px; }

/* 2. topbar：模組外層被包一層 div，讓那一層自己變成左右分置 */
.vc-topbar .vc-container > * { flex:1; display:flex; flex-wrap:wrap; align-items:center;
  justify-content:space-between; gap:8px 22px; }
.vc-topbar .mod-languages { flex:none; }
.vc-topbar .mod-languages ul { align-items:center; }
.vc-topbar .mod-languages select, .vc-topbar select { background:#35322E; color:#C9C4BA;
  border:1px solid #45413B; border-radius:999px; padding:5px 12px; font:inherit; font-size:13px; }

/* 3. 首頁大圖：疊層裡的容器要撐滿，文字才會靠左 */
.vc-banner .vc-banner__overlay > .vc-container { width:100%; flex:1; }
.vc-banner .vc-banner__overlay { background:linear-gradient(90deg,rgba(20,19,17,.88) 0%,rgba(20,19,17,.62) 42%,rgba(20,19,17,.18) 100%); }
.vc-banner__text > *:first-child { margin-top:0; }

/* 4. 搜尋框尺寸收斂 */
.vc-nav__tools .mod-finder, .vc-nav__tools form { max-width:240px; }
.vc-nav__tools input[type="search"], .vc-nav__tools input[type="text"] { width:100%; font-size:14px; padding:8px 16px; }
.vc-nav__tools .awesomplete { width:100%; }


/* ============================================================
   v1.7 字級校正 —— 對齊設計稿的比例
   全站要放大／縮小，只改這裡的 --vc-text
   ============================================================ */
:root { --vc-text: 17px; }

.vc-site { font-size:var(--vc-text); line-height:1.85; }
.vc-site, .vc-site input, .vc-site button, .vc-site select, .vc-site textarea { font-family:var(--vc-font); }

.vc-site h1 { font-size:clamp(32px,4.4vw,52px); }
.vc-site h2 { font-size:clamp(26px,3.2vw,36px); }
.vc-site h3 { font-size:22px; }

.vc-topbar { font-size:14px; }
.vc-nav > ul > li > a { font-size:16.5px; }
.vc-nav .mod-menu__sub a { font-size:15.5px; }
.vc-brand__text strong { font-size:22px; }
.vc-brand__text small { font-size:10.5px; }

.vc-banner__text h1 { font-size:clamp(32px,4.6vw,54px); line-height:1.3; }
.vc-banner__text p { font-size:18px; line-height:1.9; }
.vc-banner__eyebrow { font-size:12.5px; }

.vc-quick strong { font-size:25px; }
.vc-quick small { font-size:14px; }
.vc-quick .vc-quick__label { font-size:11.5px; }

.vc-sermon__body h3 { font-size:32px; }
.vc-sermon__meta { font-size:16px; }
.vc-sermon__links { font-size:15px; }
.vc-list__item strong { font-size:16px; }
.vc-list__item small { font-size:13px; }
.vc-live p { font-size:15px; }

.vc-card__body h3 { font-size:22px; }
.vc-card__body p { font-size:15px; line-height:1.9; }
.vc-card__body small { font-size:13px; }

.vc-event__body strong { font-size:18px; }
.vc-event__body small { font-size:14px; }
.vc-event__date strong { font-size:32px; }
.vc-timetable div { font-size:15.5px; }
.vc-timetable time { font-size:14px; }

.vc-videowall figcaption { font-size:15.5px; }
.vc-videowall small { font-size:13px; }

.vc-invite h2 { font-size:32px; }
.vc-invite p { font-size:16.5px; }

.vc-footer { font-size:14.5px; }
.vc-footer h3, .vc-footer .card-header { font-size:12.5px; }

.com-content-article__body { font-size:17.5px; line-height:2.05; }
.vc-eyebrow { font-size:12.5px; }
.vc-chip { font-size:13px; }


/* 語言切換（純連結，不需要開啟多語系） */
.vc-langswitch { display:inline-flex; align-items:center; gap:0; flex:none; }
.vc-langswitch a { padding:4px 12px; font-size:13.5px; border-left:1px solid #45413B; }
.vc-langswitch a:first-child { border-left:0; }
.vc-topbar .vc-langswitch a.is-active { color:var(--vc-accent-lite); }

/* 語言介紹頁的排版 */
.com-content-article__body .vc-lead { font-size:19px; line-height:1.9; color:var(--vc-ink); max-width:60ch; }
.com-content-article__body h1 { font-size:clamp(30px,4vw,44px); margin:8px 0 20px; }
.com-content-article__body h2 { font-size:24px; margin:38px 0 10px; }
.com-content-article__body .hr, .com-content-article__body hr { border:0; border-top:2px solid var(--vc-line); margin:32px 0; }


/* ============================================================
   v1.10 頁尾排列修正 —— 格線改套在模組包裝層上
   ============================================================ */
.vc-footer .vc-container { display:block; }
.vc-footer .vc-container > * { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px 40px; align-items:start; }
.vc-footer__col > *:first-child { margin-top:0; }
.vc-footer__col p { margin:14px 0 0; }
.vc-footer__col ul { display:flex; flex-direction:column; gap:2px; }
.vc-footer__col h3 { margin:0 0 12px; }
.vc-footer .vc-social { margin-top:16px; }
.vc-footer__bottom { margin-top:14px; }

@media (max-width: 991px) {
  .vc-footer .vc-container > * { grid-template-columns:repeat(2,1fr); gap:28px 32px; }
}
@media (max-width: 767px) {
  .vc-footer .vc-container > * { grid-template-columns:1fr; gap:26px; }
}


/* ============================================================
   v1.13 影片嵌入（Google Apps Script / YouTube 皆可）
   ============================================================ */
.vc-embed { position:relative; width:100%; padding-bottom:56.25%; height:0; background:var(--vc-ink); overflow:hidden; }
.vc-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.vc-embed__label { display:flex; align-items:center; gap:8px; background:var(--vc-accent); color:#fff;
  font-size:12px; letter-spacing:.14em; font-weight:700; padding:9px 16px; }
.vc-embed__label::before { content:""; width:7px; height:7px; border-radius:50%; background:#fff; flex:none; }
.vc-section--dark .vc-embed { background:#000; }


/* 經文連結 */
.vc-bible { color:var(--vc-accent); border-bottom:1px solid color-mix(in oklch, var(--vc-accent) 40%, transparent); }
.vc-bible:hover { color:var(--vc-ink); border-bottom-color:var(--vc-ink); text-decoration:none; }
.vc-section--dark .vc-bible { color:var(--vc-accent-lite); }

/* 經文引用區（講道內頁用） */
.vc-verse { border-left:3px solid var(--vc-accent); background:var(--vc-accent-soft);
  padding:20px 26px; margin:32px 0; font-family:var(--vc-font-title); font-size:19px; line-height:1.95; }


/* ============================================================
   v1.15 手機版不再左右晃動
   ============================================================ */
html, body { max-width:100%; overflow-x:hidden; }
.vc-site img, .vc-site iframe, .vc-site video, .vc-site table { max-width:100%; }
.vc-site * { min-width:0; }
.vc-site { overflow-wrap:break-word; }

@media (max-width: 767px) {
  /* 頂部列：允許換行，語言切換自己一行 */
  .vc-topbar .vc-container > * { flex-direction:column; align-items:flex-start; gap:6px; }
  .vc-topbar__links { flex-wrap:wrap; gap:6px 14px; }
  .vc-langswitch { flex-wrap:wrap; }
  .vc-langswitch a { padding:4px 10px; border-left:0; }
  .vc-langswitch a:not(:first-child) { border-left:1px solid #45413B; }

  /* 負邊界卡片不要超出畫面 */
  .vc-quick { margin-inline:0; }

  /* 時間表右欄的時間允許換行 */
  .vc-timetable div { gap:10px; }
  .vc-timetable time { white-space:normal; }

  /* 長網址、長英文不撐破容器 */
  .vc-footer, .com-content-article__body { overflow-wrap:anywhere; }

  /* 大圖上的按鈕改成堆疊，避免並排超寬 */
  .vc-banner__text p:last-child { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
  .vc-banner__text .vc-btn { margin-right:0; width:auto; }
}


/* ============================================================
   v1.16 主選單 —— 不依賴 Joomla 的 class 名稱
   ============================================================ */
body.vc-site .vc-nav { display:flex !important; align-items:center; gap:26px; flex-wrap:nowrap; }

/* 第一層：橫排 */
body.vc-site .vc-nav > * { display:flex; align-items:center; }
body.vc-site .vc-nav ul { list-style:none !important; margin:0 !important; padding:0 !important; }
body.vc-site .vc-nav > * > ul,
body.vc-site .vc-nav > ul { display:flex !important; flex-direction:row !important;
  align-items:center; gap:26px; flex-wrap:nowrap; }
body.vc-site .vc-nav li { position:relative; margin:0; }
body.vc-site .vc-nav > * > ul > li > a,
body.vc-site .vc-nav > * > ul > li > span,
body.vc-site .vc-nav > ul > li > a,
body.vc-site .vc-nav > ul > li > span {
  display:block; font-size:16.5px; font-weight:500; color:#3A372F !important;
  padding:6px 0; white-space:nowrap; text-decoration:none; background:none; border:0; }
body.vc-site .vc-nav > * > ul > li > a:hover,
body.vc-site .vc-nav > ul > li > a:hover { color:var(--vc-accent) !important; }
body.vc-site .vc-nav .current > a, body.vc-site .vc-nav .active > a {
  color:var(--vc-accent) !important; box-shadow:inset 0 -2px 0 var(--vc-accent); }

/* 第二層：下拉 */
body.vc-site .vc-nav li > ul { display:none !important; position:absolute; top:100%; left:-14px;
  min-width:220px; background:#fff; border:1px solid var(--vc-line);
  box-shadow:0 20px 40px -26px rgba(35,33,30,.6); padding:10px 0 !important; z-index:70;
  flex-direction:column !important; gap:0; }
body.vc-site .vc-nav li:hover > ul, body.vc-site .vc-nav li:focus-within > ul { display:flex !important; }
body.vc-site .vc-nav li > ul li > a, body.vc-site .vc-nav li > ul li > span {
  display:block; padding:9px 20px; font-size:15.5px; color:var(--vc-ink-2) !important;
  white-space:nowrap; text-decoration:none; }
body.vc-site .vc-nav li > ul li > a:hover { background:var(--vc-accent-soft); color:var(--vc-accent) !important; }

/* 大類（標題型項目）不可點但要有下拉指示 */
body.vc-site .vc-nav > * > ul > li.parent > a::after,
body.vc-site .vc-nav > * > ul > li.parent > span::after,
body.vc-site .vc-nav > ul > li.parent > a::after,
body.vc-site .vc-nav > ul > li.parent > span::after { content:" ▾"; font-size:11px; color:var(--vc-muted); }

/* 手機：改回上下堆疊 */
@media (max-width: 767px) {
  body.vc-site .vc-nav { display:none !important; flex-direction:column; align-items:stretch; gap:0; }
  body.vc-site .vc-nav.is-open { display:flex !important; }
  body.vc-site .vc-nav > * { display:block; width:100%; }
  body.vc-site .vc-nav > * > ul, body.vc-site .vc-nav > ul {
    flex-direction:column !important; align-items:stretch; gap:0; }
  body.vc-site .vc-nav > * > ul > li > a, body.vc-site .vc-nav > ul > li > a,
  body.vc-site .vc-nav > * > ul > li > span, body.vc-site .vc-nav > ul > li > span {
    padding:14px 4px; border-bottom:1px solid var(--vc-line); white-space:normal; }
  body.vc-site .vc-nav li > ul { display:flex !important; position:static; border:0;
    box-shadow:none; padding:0 0 8px 14px !important; min-width:0; }
}


/* ============================================================
   v1.17 主選單字型與字色（黑灰、圓體）
   圓體在 Mac / iPhone 會用系統的「圓體-繁」，
   Windows / Android 沒有內建圓體，會退回 Noto Sans TC。
   ============================================================ */
:root {
  --vc-font-round: "Yuanti TC", "圓體-繁", YuanTi, "Yuanti SC",
                   "Zen Maru Gothic", "M PLUS Rounded 1c",
                   "Noto Sans TC", "Helvetica Neue", sans-serif;
  --vc-nav-ink: #33312E;
}

body.vc-site .vc-nav > * > ul > li > a,
body.vc-site .vc-nav > * > ul > li > span,
body.vc-site .vc-nav > ul > li > a,
body.vc-site .vc-nav > ul > li > span {
  font-family:var(--vc-font-round);
  color:var(--vc-nav-ink) !important;
  font-weight:500;
  font-size:17px;
  letter-spacing:.04em;
}

body.vc-site .vc-nav li > ul li > a,
body.vc-site .vc-nav li > ul li > span {
  font-family:var(--vc-font-round);
  letter-spacing:.03em;
}


/* ============================================================
   v1.20 下拉子選單字體與主選單一致
   ============================================================ */
body.vc-site .vc-nav li > ul li > a,
body.vc-site .vc-nav li > ul li > span {
  font-family:var(--vc-font-round) !important;
  font-size:16px;
  font-weight:500;
  color:var(--vc-nav-ink) !important;
  letter-spacing:.04em;
  line-height:1.6;
  padding:11px 22px;
}
body.vc-site .vc-nav li > ul li > a:hover {
  background:var(--vc-accent-soft);
  color:var(--vc-accent) !important;
}
body.vc-site .vc-nav li > ul { padding:8px 0 !important; }


/* ============================================================
   v1.21 選單字體與字色 —— 取消圓體，統一無襯線
   ============================================================ */
:root { --vc-font-round: var(--vc-font); }

/* 涵蓋 .vc-nav 底下所有連結，不管 Joomla 用什麼 class */
body.vc-site .vc-nav a,
body.vc-site .vc-nav span,
body.vc-site .vc-nav li > a,
body.vc-site .vc-nav ul li a {
  font-family:var(--vc-font) !important;
  color:var(--vc-nav-ink) !important;
  text-decoration:none !important;
  font-weight:500;
  letter-spacing:.03em;
}
body.vc-site .vc-nav > * > ul > li > a,
body.vc-site .vc-nav > ul > li > a { font-size:17px; }
body.vc-site .vc-nav li > ul li > a { font-size:16px; font-weight:400; }

body.vc-site .vc-nav a:hover,
body.vc-site .vc-nav ul li a:hover { color:var(--vc-accent) !important; }
body.vc-site .vc-nav .current > a,
body.vc-site .vc-nav .active > a { color:var(--vc-accent) !important; }


/* ============================================================
   v1.22 手機版：四格資訊卡不再壓到 Banner 按鈕
   ============================================================ */
@media (max-width: 991px) {
  .vc-quick { margin-top:0 !important; box-shadow:none; }
  .vc-quickcards { padding-top:20px; }
  /* Banner 在手機加高下方留白，按鈕不貼邊 */
  .vc-banner__overlay { padding-block:32px; }
  .vc-banner img { height:auto; min-height:380px; }
}
@media (max-width: 767px) {
  .vc-quickcards { padding-top:16px; }
  .vc-banner__text h1 { font-size:clamp(26px,7vw,34px); }
  .vc-banner__text p { font-size:15px; }
  .vc-banner img { min-height:420px; }
}


/* ============================================================
   v1.23 下拉箭頭改用 CSS 繪製（不依賴字型符號）
   ============================================================ */
body.vc-site .vc-nav > * > ul > li.parent > a::after,
body.vc-site .vc-nav > * > ul > li.parent > span::after,
body.vc-site .vc-nav > ul > li.parent > a::after,
body.vc-site .vc-nav > ul > li.parent > span::after,
body.vc-site .vc-nav > * > ul > li:has(ul) > a::after,
body.vc-site .vc-nav > ul > li:has(ul) > a::after {
  content:"" !important;
  display:inline-block;
  width:7px; height:7px;
  margin-left:9px;
  margin-bottom:2px;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);
  vertical-align:middle;
  opacity:.55;
  transition:transform .15s ease, opacity .15s ease;
}
body.vc-site .vc-nav li:hover > a::after { opacity:1; transform:rotate(225deg); margin-bottom:-2px; }


/* ============================================================
   v1.24 自動主日信息卡
   ============================================================ */
.vc-autosermon { margin-bottom:56px; }
.vc-sermon--auto { max-width:820px; }
.vc-sermon__tags { margin:0 0 6px; }
.vc-sermon--auto .vc-audio { margin-top:0; margin-bottom:22px; }
.vc-sermon--auto h3 { font-size:30px; margin:4px 0 0; }
.vc-sermon--auto .vc-embed__label { margin:0; }
@media (max-width:767px) { .vc-sermon--auto h3 { font-size:24px; } }


/* v1.25 自動信息卡：清單可點、寬度回到設計稿 */
.vc-sermon--auto { max-width:none; }
a.vc-list__item { text-decoration:none; transition:border-color .15s ease; }
a.vc-list__item:hover { border-color:var(--vc-accent); text-decoration:none; }
a.vc-list__item strong { color:var(--vc-ink); }
.vc-autosermon .vc-split { align-items:start; }


/* ============================================================
   v1.26 徹底清除選單裡的方框箭頭，改用 CSS 繪製
   ============================================================ */
/* 1. 清掉任何來源的 ::before / ::after 符號 */
body.vc-site .vc-nav a::before,
body.vc-site .vc-nav a::after,
body.vc-site .vc-nav span::before,
body.vc-site .vc-nav span::after,
body.vc-site .vc-nav li::before,
body.vc-site .vc-nav li::after { content:none !important; }

/* 2. 清掉 Joomla / Cassiopeia 自帶的箭頭元素 */
body.vc-site .vc-nav .icon-arrow-down,
body.vc-site .vc-nav .icon-angle-down,
body.vc-site .vc-nav .caret,
body.vc-site .vc-nav [class*="icon-"],
body.vc-site .vc-nav svg { display:none !important; }

/* 3. 用一個獨立元素畫箭頭，不靠字型 */
body.vc-site .vc-nav > * > ul > li:has(ul) > a,
body.vc-site .vc-nav > ul > li:has(ul) > a { position:relative; padding-right:20px; }

body.vc-site .vc-nav > * > ul > li:has(ul) > a::after,
body.vc-site .vc-nav > ul > li:has(ul) > a::after {
  content:"" !important;
  position:absolute;
  right:2px;
  top:50%;
  width:7px; height:7px;
  margin-top:-5px;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform:rotate(45deg);
  opacity:.5;
  transition:transform .15s ease, opacity .15s ease;
}
body.vc-site .vc-nav > * > ul > li:has(ul):hover > a::after,
body.vc-site .vc-nav > ul > li:has(ul):hover > a::after {
  opacity:1; transform:rotate(225deg); margin-top:-2px;
}


/* v1.30 音檔上方標示 */
.vc-audio__label { margin:0 0 10px; font-size:12px; letter-spacing:.16em;
  color:var(--vc-accent); font-weight:700; }


/* ============================================================
   v1.31 可摺疊的嵌入表格（聚會時間表）
   ============================================================ */
.vc-fold { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); overflow:hidden; }
.vc-fold > summary { list-style:none; cursor:pointer; padding:16px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  font-size:15.5px; font-weight:500; color:var(--vc-ink); }
.vc-fold > summary::-webkit-details-marker { display:none; }
.vc-fold > summary::after {
  content:""; width:8px; height:8px; flex:none;
  border-right:1.8px solid var(--vc-accent); border-bottom:1.8px solid var(--vc-accent);
  transform:rotate(45deg); margin-bottom:3px; transition:transform .18s ease; }
.vc-fold[open] > summary::after { transform:rotate(225deg); margin-bottom:-2px; }
.vc-fold > summary:hover { background:var(--vc-accent-soft); }

.vc-fold__body { border-top:1px solid var(--vc-line); }
.vc-fold__body iframe { display:block; width:100%; border:0; }

/* 首頁的縮略高度 */
.vc-embed-table { height:440px; }
.vc-embed-table--full { height:1400px; }

.vc-fold__foot { padding:14px 22px; border-top:1px solid var(--vc-line);
  background:var(--vc-bg); font-size:14px; }

@media (max-width:767px) {
  .vc-embed-table { height:360px; }
  .vc-embed-table--full { height:1100px; }
  .vc-fold > summary { padding:14px 18px; font-size:15px; }
}


/* ============================================================
   v1.32 側欄時間表 + 查詢工具引導卡
   ============================================================ */
.vc-timetable { padding:8px 26px 22px; }
.vc-timetable div:last-of-type { border-bottom:0; }
.vc-timetable div { align-items:baseline; }
.vc-timetable span { line-height:1.6; }

/* 引導卡：連到完整查詢工具 */
.vc-cta-card { display:block; margin-top:14px; padding:22px 26px;
  background:var(--vc-accent-soft); border:1px solid transparent;
  border-radius:var(--vc-radius); text-decoration:none;
  transition:border-color .15s ease, background .15s ease; }
.vc-cta-card:hover { border-color:var(--vc-accent); background:#fff; text-decoration:none; }
.vc-cta-card strong { display:block; font-family:var(--vc-font-title);
  font-size:19px; color:var(--vc-ink); line-height:1.5; }
.vc-cta-card span { display:block; font-size:14px; color:var(--vc-ink-2);
  line-height:1.8; margin-top:8px; }
.vc-cta-card em { display:inline-block; font-style:normal; font-size:14px;
  color:var(--vc-accent); font-weight:500; margin-top:12px; }

/* 整頁版的查詢工具 */
.vc-tool-page { background:#fff; border:1px solid var(--vc-line);
  border-radius:var(--vc-radius); overflow:hidden; }
.vc-tool-page iframe { display:block; width:100%; border:0; height:1500px; }
@media (max-width:767px) { .vc-tool-page iframe { height:1200px; } }


/* ============================================================
   v1.32 聚會時間表（原生排版，取代 Google 嵌入）
   ============================================================ */
.vc-tt { background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius); overflow:hidden; }

.vc-tt__day { border-top:1px solid var(--vc-line); }
.vc-tt__day:first-child { border-top:0; }

.vc-tt__head { display:flex; align-items:baseline; gap:12px;
  padding:14px 22px 10px; background:var(--vc-bg); }
.vc-tt__head b { font-family:var(--vc-font-title); font-size:17px; color:var(--vc-ink); font-weight:700; }
.vc-tt__head span { font-size:11px; letter-spacing:.18em; color:var(--vc-accent); font-weight:700; }

.vc-tt__row { display:grid; grid-template-columns:92px 1fr auto; gap:16px;
  align-items:baseline; padding:12px 22px; border-top:1px solid #F0ECE5; }
.vc-tt__row:hover { background:var(--vc-accent-soft); }
.vc-tt__time { font-family:ui-monospace,monospace; font-size:14px; color:var(--vc-accent);
  font-weight:700; white-space:nowrap; }
.vc-tt__name { font-size:15.5px; color:var(--vc-ink); line-height:1.6; }
.vc-tt__name small { display:block; font-size:13px; color:var(--vc-ink-2); margin-top:3px; }
.vc-tt__place { font-size:13px; color:var(--vc-muted); white-space:nowrap; }

.vc-tt__foot { padding:16px 22px; border-top:1px solid var(--vc-line);
  background:var(--vc-bg); font-size:14px; display:flex; justify-content:space-between;
  gap:14px; flex-wrap:wrap; }
.vc-tt__foot span { color:var(--vc-muted); font-size:13px; }

/* 摺疊版（首頁用）*/
details.vc-tt > summary { list-style:none; cursor:pointer; padding:16px 22px;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  font-size:15.5px; font-weight:500; color:var(--vc-ink); background:#fff; }
details.vc-tt > summary::-webkit-details-marker { display:none; }
details.vc-tt > summary::after { content:""; width:8px; height:8px; flex:none;
  border-right:1.8px solid var(--vc-accent); border-bottom:1.8px solid var(--vc-accent);
  transform:rotate(45deg); margin-bottom:3px; transition:transform .18s ease; }
details.vc-tt[open] > summary::after { transform:rotate(225deg); margin-bottom:-2px; }
details.vc-tt > summary:hover { background:var(--vc-accent-soft); }
details.vc-tt .vc-tt__day:first-child { border-top:1px solid var(--vc-line); }

@media (max-width:767px) {
  .vc-tt__row { grid-template-columns:1fr auto; gap:4px 12px; padding:12px 18px; }
  .vc-tt__time { grid-column:1/-1; font-size:13px; }
  .vc-tt__head { padding:12px 18px 8px; }
  .vc-tt__foot { padding:14px 18px; }
}


/* ============================================================
   v1.33 Google Apps Script 表格整頁嵌入
   ============================================================ */
.vc-gs {
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  overflow:hidden; margin:0 0 28px;
}
.vc-gs__head {
  padding:18px 24px; border-bottom:1px solid var(--vc-line); background:var(--vc-bg);
  display:flex; align-items:baseline; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.vc-gs__head b { font-family:var(--vc-font-title); font-size:19px; color:var(--vc-ink); font-weight:700; }
.vc-gs__head span { font-size:13px; color:var(--vc-muted); }
.vc-gs iframe { display:block; width:100%; border:0; height:1600px; }
.vc-gs__foot {
  padding:14px 24px; border-top:1px solid var(--vc-line); background:var(--vc-bg);
  font-size:13.5px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.vc-gs__foot span { color:var(--vc-muted); }

@media (max-width:767px) {
  .vc-gs iframe { height:1900px; }
  .vc-gs__head, .vc-gs__foot { padding:14px 18px; }
  .vc-gs__head b { font-size:17px; }
}


/* ============================================================
   v1.34 滿版頁面
   用法：選單項目 → 頁面顯示 → 頁面類別 填 vc-full
   ============================================================ */
.vc-full .vc-body > .vc-container { max-width:none; padding-inline:32px; }
.vc-full .vc-grid { grid-template-columns:minmax(0,1fr) !important; gap:0; }
.vc-full .vc-sidebar { display:none; }
.vc-full .com-content-article__body,
.vc-full .vc-article__body { max-width:none; }
.vc-full .vc-gs, .vc-full .vc-tt { max-width:none; }
.vc-full .vc-gs iframe { height:2000px; }

@media (max-width:767px) {
  .vc-full .vc-body > .vc-container { padding-inline:14px; }
  .vc-full .vc-gs iframe { height:2200px; }
}


/* ============================================================
   v1.35 手機選單修正（放最後，權重最高）
   問題成因：v1.16 那段 body.vc-site .vc-nav{display:flex!important}
   沒有限定螢幕寬度，在手機上壓過了「收起來」的規則，
   所以漢堡按鈕按下去看起來沒反應；第二層選單又只靠 :hover，觸控沒有 hover。
   ============================================================ */
@media (max-width: 991px) {

  body.vc-site .vc-header { position:relative; }

  body.vc-site .vc-burger { display:block !important; width:46px; height:46px;
    border:1px solid var(--vc-line); background:#fff; position:relative;
    z-index:120; cursor:pointer; padding:0; -webkit-tap-highlight-color:transparent; }
  body.vc-site .vc-burger span,
  body.vc-site .vc-burger span::before,
  body.vc-site .vc-burger span::after { content:""; position:absolute; left:13px;
    width:20px; height:2px; background:var(--vc-ink);
    transition:transform .2s ease, background .2s ease; }
  body.vc-site .vc-burger span { top:22px; }
  body.vc-site .vc-burger span::before { top:-7px; left:0; }
  body.vc-site .vc-burger span::after { top:7px; left:0; }
  body.vc-site .vc-burger[aria-expanded="true"] span { background:transparent; }
  body.vc-site .vc-burger[aria-expanded="true"] span::before { transform:translateY(7px) rotate(45deg); }
  body.vc-site .vc-burger[aria-expanded="true"] span::after  { transform:translateY(-7px) rotate(-45deg); }

  body.vc-site .vc-nav { display:none !important; position:absolute;
    left:0; right:0; top:100%; z-index:110;
    background:#fff; border-top:1px solid var(--vc-line);
    border-bottom:1px solid var(--vc-line);
    box-shadow:0 18px 36px -22px rgba(35,33,30,.45);
    flex-direction:column !important; align-items:stretch !important;
    gap:0 !important; padding:6px 18px 18px !important;
    max-height:calc(100vh - 110px); overflow-y:auto; -webkit-overflow-scrolling:touch; }
  body.vc-site .vc-nav.is-open { display:flex !important; }

  body.vc-site .vc-nav > *,
  body.vc-site .vc-nav > * > ul,
  body.vc-site .vc-nav > ul { display:block !important; width:100%; }
  body.vc-site .vc-nav li { display:block !important; }
  body.vc-site .vc-nav > * > ul > li > a,
  body.vc-site .vc-nav > ul > li > a {
    display:block !important; padding:15px 2px !important;
    border-bottom:1px solid var(--vc-line); font-size:17px !important;
    white-space:normal !important; }

  /* 第二層：觸控螢幕沒有 hover，直接全部展開 */
  body.vc-site .vc-nav li > ul { display:block !important;
    position:static !important; border:0 !important; box-shadow:none !important;
    min-width:0 !important; padding:4px 0 10px 16px !important;
    background:transparent !important; }
  body.vc-site .vc-nav li > ul li > a { display:block !important;
    padding:11px 2px !important; font-size:15.5px !important;
    color:var(--vc-ink-2) !important; border-bottom:0 !important; }
  body.vc-site .vc-nav li > ul li > a::before { content:"— "; color:var(--vc-muted); }

  body.vc-site .vc-nav__tools { display:block !important; width:100%; padding-top:14px; }
  body.vc-site .vc-nav__tools .mod-finder,
  body.vc-site .vc-nav__tools form { max-width:none !important; }
  body.vc-site .vc-nav__tools input[type="search"],
  body.vc-site .vc-nav__tools input[type="text"] { width:100% !important; min-height:44px; }

  body.vc-site.vc-nav-open { overflow:hidden; }
}


/* ============================================================
   v1.37 自動最新影片
   ============================================================ */
.vc-latest-videos.is-loaded { display:flex; flex-direction:column; gap:14px; }
.vc-latest-videos a.vc-list__item { text-decoration:none; transition:border-color .15s ease; }
.vc-latest-videos a.vc-list__item:hover { border-color:var(--vc-accent); }
.vc-latest-videos a.vc-list__item img { width:96px; height:54px; object-fit:cover; border-radius:4px; flex:none; }
.vc-latest-videos a.vc-list__item strong { font-size:14.5px; line-height:1.5; }

/* 影音牆模式 */
.vc-latest-videos[data-mode="wall"].is-loaded { display:grid;
  grid-template-columns:repeat(4,1fr); gap:18px; }
.vc-latest-videos[data-mode="wall"] figure { margin:0; }
.vc-latest-videos[data-mode="wall"] a { text-decoration:none; display:block; }
.vc-latest-videos[data-mode="wall"] img { width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:5px; display:block; }
.vc-latest-videos[data-mode="wall"] figcaption { font-size:14.5px; color:#EDEAE4;
  margin-top:12px; line-height:1.6; }
.vc-latest-videos[data-mode="wall"] small { color:var(--vc-muted); font-size:12.5px; }

@media (max-width:991px) { .vc-latest-videos[data-mode="wall"].is-loaded { grid-template-columns:repeat(2,1fr); } }
@media (max-width:767px) { .vc-latest-videos[data-mode="wall"].is-loaded { grid-template-columns:1fr; } }


/* v1.38 沒有影片縮圖時的佔位 */
.vc-latest-videos a.vc-list__item .vc-ph { width:96px; height:54px; border-radius:4px; flex:none; }
.vc-latest-videos[data-mode="wall"] .vc-ph { width:100%; aspect-ratio:16/9; border-radius:5px; }


/* ============================================================
   v1.44 選單精簡：四大類 + 奉獻圖示鈕
   ============================================================ */
.vc-give { display:inline-flex; align-items:center; gap:8px;
  background:var(--vc-accent); color:#fff !important; text-decoration:none;
  padding:9px 18px; border-radius:999px; font-size:14.5px; font-weight:500;
  white-space:nowrap; transition:background .15s ease; }
.vc-give:hover { background:var(--vc-ink); color:#fff !important; text-decoration:none; }
.vc-give svg { width:17px; height:17px; flex:none; stroke:currentColor;
  fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }

@media (max-width:991px) {
  body.vc-site .vc-nav .vc-give { display:flex; justify-content:center;
    margin-top:14px; padding:13px 18px; min-height:44px; }
}


/* v1.45 下拉選單裡的分隔線（選單項目類型選「分隔線 Separator」即可） */
.vc-nav .mod-menu__sub li.divider,
.vc-nav .mod-menu__sub li.item-separator {
  border-top:1px solid var(--vc-line); margin:8px 0; padding:0; height:0; }
.vc-nav .mod-menu__sub li.divider > *,
.vc-nav .mod-menu__sub li.item-separator > * { display:none !important; }
@media (max-width:991px) {
  body.vc-site .vc-nav li.divider,
  body.vc-site .vc-nav li.item-separator {
    border-top:1px solid var(--vc-line) !important; margin:6px 0 !important; }
}


/* ============================================================
   v1.47 選單靠左 + 下拉定位修正
   ============================================================ */
@media (min-width: 992px) {
  /* header 三段：品牌｜選單（靠左展開）｜工具 */
  body.vc-site .vc-header__inner { justify-content:flex-start; gap:40px; }
  body.vc-site .vc-nav { margin-right:auto; gap:30px; }
  body.vc-site .vc-nav__tools { margin-left:auto; }

  /* 第一層不換行、字距一致 */
  body.vc-site .vc-nav > *,
  body.vc-site .vc-nav > * > ul,
  body.vc-site .vc-nav > ul { display:flex !important; align-items:center; gap:30px; }
  body.vc-site .vc-nav > * > ul > li > a,
  body.vc-site .vc-nav > ul > li > a { white-space:nowrap; }

  /* 下拉：對齊父項左緣、不被裁切 */
  body.vc-site .vc-nav li { position:relative; }
  body.vc-site .vc-nav .mod-menu__sub,
  body.vc-site .vc-nav li > ul {
    position:absolute !important; top:100% !important; left:0 !important; right:auto !important;
    min-width:220px; width:max-content; max-width:320px;
    background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
    box-shadow:0 20px 40px -26px rgba(35,33,30,.6);
    padding:10px 0; margin:0; list-style:none;
    display:none !important; flex-direction:column; z-index:90; }
  body.vc-site .vc-nav li:hover > .mod-menu__sub,
  body.vc-site .vc-nav li:focus-within > .mod-menu__sub,
  body.vc-site .vc-nav li:hover > ul,
  body.vc-site .vc-nav li:focus-within > ul { display:block !important; }

  body.vc-site .vc-nav .mod-menu__sub li,
  body.vc-site .vc-nav li > ul li { display:block !important; width:100%; }
  body.vc-site .vc-nav .mod-menu__sub a,
  body.vc-site .vc-nav li > ul a {
    display:block !important; padding:9px 20px !important;
    font-size:15px !important; line-height:1.6; white-space:nowrap;
    color:var(--vc-ink-2) !important; box-shadow:none !important; }
  body.vc-site .vc-nav .mod-menu__sub a:hover,
  body.vc-site .vc-nav li > ul a:hover {
    background:var(--vc-accent-soft); color:var(--vc-accent) !important; text-decoration:none; }

  /* 靠右邊的項目，下拉改為向左展開，避免超出畫面 */
  body.vc-site .vc-nav > * > ul > li:last-child > ul,
  body.vc-site .vc-nav > ul > li:last-child > ul { left:auto !important; right:0 !important; }

  /* header 不裁切下拉 */
  body.vc-site .vc-header, body.vc-site .vc-header__inner { overflow:visible; }
}


/* ============================================================
   v1.48 首頁圖示鈕（教堂尖頂 + 十字，配合教會標誌）
   注意：body 的首頁狀態 class 是 .vc-is-home，勿與此元件同名
   ============================================================ */
.vc-home {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; flex:none;
  border:1px solid var(--vc-line); border-radius:50%;
  color:var(--vc-accent) !important; text-decoration:none;
  background:#fff; transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-home:hover { background:var(--vc-accent); border-color:var(--vc-accent);
  color:#fff !important; text-decoration:none; }
.vc-home:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }
.vc-home svg { width:19px; height:19px; stroke:currentColor; fill:none;
  stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

@media (max-width:991px) {
  body.vc-site .vc-nav .vc-home { width:100%; border-radius:var(--vc-radius);
    min-height:44px; gap:10px; margin-top:14px; }
  body.vc-site .vc-nav .vc-home::after { content:"回首頁"; font-size:15px; font-weight:500; }
}


/* ============================================================
   v1.50 三種內頁版型
   單一文章 / 分類部落格 / 分類清單
   純 CSS，不覆寫 Joomla 核心 layout，更新不會壞。
   ============================================================ */

/* ---------- 頁首：頁面標題區 ---------- */
.vc-body .page-header { margin:0 0 40px; padding-bottom:20px;
  border-bottom:2px solid var(--vc-ink); }
.vc-body .page-header h1,
.vc-body .page-header h2 { font-family:var(--vc-font-title); font-size:clamp(26px,3.4vw,38px);
  line-height:1.3; margin:0; color:var(--vc-ink); font-weight:700; }
.vc-body .page-header .category-desc { font-size:15.5px; color:var(--vc-ink-2);
  line-height:1.9; margin-top:14px; max-width:56em; }

/* ============================================================
   1. 單一文章
   ============================================================ */
.com-content-article { max-width:none; }
.com-content-article__body,
.com-content-article > div:not(.article-info):not(.page-header) { max-width:70ch; }

.com-content-article .page-header h1,
.com-content-article h1.page-title,
.com-content-article__title { font-family:var(--vc-font-title);
  font-size:clamp(28px,3.6vw,40px); line-height:1.28; margin:0 0 16px;
  color:var(--vc-ink); font-weight:700; }

/* 文章資訊列：日期、作者、分類 */
.com-content-article .article-info,
.com-content-article__info { display:flex; flex-wrap:wrap; gap:8px 20px;
  font-size:13px; color:var(--vc-muted); margin:0 0 32px;
  padding-bottom:18px; border-bottom:1px solid var(--vc-line); }
.com-content-article .article-info dd,
.com-content-article__info dd { margin:0; }
.com-content-article .article-info dt.article-info-term { display:none; }

/* 正文 */
.com-content-article__body { font-size:17px; line-height:2; color:var(--vc-ink); }
.com-content-article__body > * + * { margin-top:1.4em; }
.com-content-article__body h2 { font-family:var(--vc-font-title); font-size:24px;
  margin-top:2.2em; padding-bottom:8px; border-bottom:1px solid var(--vc-line); }
.com-content-article__body h3 { font-family:var(--vc-font-title); font-size:20px; margin-top:2em; }
.com-content-article__body img { max-width:100%; height:auto; border-radius:var(--vc-radius); }
.com-content-article__body figure { margin:2em 0; }
.com-content-article__body figcaption { font-size:13.5px; color:var(--vc-muted); margin-top:10px; }
.com-content-article__body ul,
.com-content-article__body ol { padding-left:1.5em; }
.com-content-article__body li + li { margin-top:.5em; }
.com-content-article__body blockquote { border-left:2px solid var(--vc-accent);
  background:var(--vc-accent-soft); margin:2em 0; padding:20px 26px;
  font-family:var(--vc-font-title); font-size:19px; line-height:1.8; }
.com-content-article__body blockquote p:last-child { margin-bottom:0; }
.com-content-article__body table { width:100%; border-collapse:collapse; font-size:15px; }
.com-content-article__body th,
.com-content-article__body td { text-align:left; padding:11px 14px;
  border-bottom:1px solid var(--vc-line); }
.com-content-article__body th { background:var(--vc-bg); font-weight:700;
  border-bottom:2px solid var(--vc-ink); }

/* 自訂欄位（講員、經文、系列） */
.com-content-article .fields-container { display:flex; flex-wrap:wrap; gap:8px;
  margin:0 0 28px; padding:0; border:0; }
.com-content-article .fields-container .field-entry { display:inline-flex; gap:6px;
  font-size:13px; background:var(--vc-accent-soft); color:var(--vc-accent);
  padding:6px 12px; border-radius:3px; margin:0; }
.com-content-article .fields-container .field-label { font-weight:700; }

/* 上一篇 / 下一篇 */
.pagenavigation { display:flex; justify-content:space-between; gap:16px;
  margin-top:48px; padding-top:24px; border-top:1px solid var(--vc-line); flex-wrap:wrap; }
.pagenavigation .btn { background:none; border:1px solid var(--vc-line);
  border-radius:999px; padding:10px 20px; font-size:14px; color:var(--vc-ink-2); }
.pagenavigation .btn:hover { border-color:var(--vc-accent); color:var(--vc-accent); }

/* ============================================================
   2. 分類部落格 —— 首篇大、其餘兩欄卡片
   ============================================================ */
.com-content-category-blog .blog-items { display:grid; gap:28px;
  grid-template-columns:repeat(2,minmax(0,1fr)); }

.com-content-category-blog .blog-item { background:#fff;
  border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:border-color .15s ease; }
.com-content-category-blog .blog-item:hover { border-color:var(--vc-accent); }

/* 第一篇跨兩欄，橫向排 */
.com-content-category-blog .blog-item:first-child { grid-column:1/-1;
  display:grid; grid-template-columns:1.1fr 1fr; align-items:stretch; }
.com-content-category-blog .blog-item:first-child .item-image { height:100%; }
.com-content-category-blog .blog-item:first-child .item-image img { height:100%; }
.com-content-category-blog .blog-item:first-child .item-content { padding:36px 38px; }
.com-content-category-blog .blog-item:first-child h2,
.com-content-category-blog .blog-item:first-child .item-title {
  font-size:28px; line-height:1.35; }

.com-content-category-blog .item-image { margin:0; overflow:hidden; }
.com-content-category-blog .item-image img { width:100%; aspect-ratio:16/10;
  object-fit:cover; display:block; }
.com-content-category-blog .blog-item:first-child .item-image img { aspect-ratio:auto; }

.com-content-category-blog .item-content { padding:24px 26px 28px;
  display:flex; flex-direction:column; gap:12px; flex:1; }
.com-content-category-blog h2,
.com-content-category-blog .item-title { font-family:var(--vc-font-title);
  font-size:21px; line-height:1.5; margin:0; font-weight:700; }
.com-content-category-blog h2 a,
.com-content-category-blog .item-title a { color:var(--vc-ink); }
.com-content-category-blog h2 a:hover { color:var(--vc-accent); text-decoration:none; }

.com-content-category-blog .article-info { display:flex; flex-wrap:wrap;
  gap:6px 16px; font-size:12.5px; color:var(--vc-muted); margin:0; }
.com-content-category-blog .article-info dd { margin:0; }
.com-content-category-blog .article-info dt { display:none; }

.com-content-category-blog .intro { font-size:15px; color:var(--vc-ink-2);
  line-height:1.85; margin:0; }
.com-content-category-blog .intro p:last-child { margin-bottom:0; }

.com-content-category-blog .readmore { margin-top:auto; padding-top:8px; }
.com-content-category-blog .readmore .btn { background:none; border:0; padding:0;
  color:var(--vc-accent); font-size:14px; font-weight:500; }
.com-content-category-blog .readmore .btn::after { content:" →"; }
.com-content-category-blog .readmore .btn:hover { color:var(--vc-ink); }

/* 分頁 */
.com-content-category-blog .pagination-wrapper,
.pagination__wrapper { margin-top:48px; padding-top:24px;
  border-top:1px solid var(--vc-line); }
.pagination { display:flex; gap:6px; list-style:none; padding:0; margin:0;
  flex-wrap:wrap; align-items:center; }
.pagination .page-link { display:inline-flex; align-items:center; justify-content:center;
  min-width:40px; height:40px; padding:0 12px; font-size:14px;
  border:1px solid var(--vc-line); color:var(--vc-ink-2); }
.pagination .page-link:hover { border-color:var(--vc-accent);
  color:var(--vc-accent); text-decoration:none; }
.pagination .active .page-link { background:var(--vc-accent);
  border-color:var(--vc-accent); color:#fff; }
.pagination .counter { font-size:13px; color:var(--vc-muted); margin-left:auto; }

/* ============================================================
   3. 分類清單 —— 緊湊表格式
   ============================================================ */
.com-content-category-list .com-content-category__table,
.com-content-category-list table.category { width:100%; border-collapse:collapse;
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  overflow:hidden; font-size:15px; }
.com-content-category-list thead th { text-align:left; padding:14px 20px;
  font-size:11px; letter-spacing:.14em; color:var(--vc-accent);
  font-weight:700; background:var(--vc-bg); border-bottom:2px solid var(--vc-ink); }
.com-content-category-list tbody td { padding:15px 20px;
  border-bottom:1px solid #F0ECE5; vertical-align:baseline; }
.com-content-category-list tbody tr:last-child td { border-bottom:0; }
.com-content-category-list tbody tr:hover { background:var(--vc-accent-soft); }
.com-content-category-list td a { color:var(--vc-ink); font-weight:500; }
.com-content-category-list td a:hover { color:var(--vc-accent); text-decoration:none; }
.com-content-category-list .list-date,
.com-content-category-list .list-author,
.com-content-category-list .list-hits { color:var(--vc-muted); font-size:13.5px;
  white-space:nowrap; }
.com-content-category-list .list-date { font-family:ui-monospace,monospace; }

/* 篩選列（排序、每頁數量、搜尋） */
.com-content-category-list .btn-toolbar,
.com-content-category-list .com-content-category__filter { display:flex;
  gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:20px; }
.com-content-category-list select,
.com-content-category-list input[type="text"] { border:1px solid var(--vc-line);
  border-radius:var(--vc-radius); padding:9px 14px; font:inherit; font-size:14px;
  background:#fff; min-height:40px; }

/* 子分類清單（兩種視圖共用） */
.com-content-category__children { margin:0 0 40px; }
.com-content-category__children h3 { font-family:var(--vc-font-title);
  font-size:13px; letter-spacing:.14em; color:var(--vc-accent);
  text-transform:uppercase; margin:0 0 14px; }
.com-content-category__children ul { display:flex; flex-wrap:wrap; gap:10px;
  list-style:none; padding:0; margin:0; }
.com-content-category__children li { margin:0; }
.com-content-category__children a { display:inline-block; font-size:14px;
  border:1px solid var(--vc-line); border-radius:999px;
  padding:8px 16px; color:var(--vc-ink-2); }
.com-content-category__children a:hover { border-color:var(--vc-accent);
  color:var(--vc-accent); text-decoration:none; }

/* ---------- 手機 ---------- */
@media (max-width: 767px) {
  .vc-body .page-header { margin-bottom:28px; }

  .com-content-article__body { font-size:16px; line-height:1.95; }
  .com-content-article__body blockquote { padding:16px 18px; font-size:17px; }

  .com-content-category-blog .blog-items { grid-template-columns:1fr; gap:20px; }
  .com-content-category-blog .blog-item:first-child { grid-template-columns:1fr; }
  .com-content-category-blog .blog-item:first-child .item-content { padding:22px 20px 26px; }
  .com-content-category-blog .blog-item:first-child h2 { font-size:22px; }
  .com-content-category-blog .item-content { padding:20px; }

  /* 分類清單改成卡片式堆疊 */
  .com-content-category-list thead { display:none; }
  .com-content-category-list tbody tr { display:block;
    border-bottom:1px solid var(--vc-line); padding:14px 18px; }
  .com-content-category-list tbody td { display:block; padding:0;
    border:0; }
  .com-content-category-list tbody td + td { margin-top:5px; }
  .pagination .counter { width:100%; margin:10px 0 0; }
}

/* 列印：只留正文 */
@media print {
  .vc-body .page-header { border-bottom:1px solid #000; }
  .pagenavigation, .pagination__wrapper, .com-content-category__children { display:none !important; }
}


/* ============================================================
   v1.51 隨機圖片
   <img src="/templates/victory/randompic.php" class="vc-randompic" alt="">
   ============================================================ */
.vc-randompic { width:100%; height:100%; object-fit:cover; display:block; }
.vc-randompic--16x9  { aspect-ratio:16/9; }
.vc-randompic--16x10 { aspect-ratio:16/10; }
.vc-randompic--4x3   { aspect-ratio:4/3; }
.vc-randompic--square{ aspect-ratio:1/1; }

/* 文章列表沒有主圖時，自動補一張隨機圖 */
.vc-blog-fallback { position:relative; overflow:hidden;
  background:repeating-linear-gradient(135deg,#DFDAD1 0 12px,#E8E4DC 12px 24px); }
.vc-blog-fallback img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }


/* 自動補圖容器 */
.vc-autopic { position:relative; overflow:hidden; width:100%;
  background:repeating-linear-gradient(135deg,#DFDAD1 0 12px,#E8E4DC 12px 24px); }
.vc-autopic img { position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; }
.com-content-category-blog .blog-item:first-child .vc-autopic { height:100%; aspect-ratio:auto !important; }
.vc-list__item > img { width:96px; height:54px; object-fit:cover; border-radius:4px; flex:none; }


/* ============================================================
   v1.53 直播中標籤（紅點呼吸燈）
   ============================================================ */
.vc-embed__label.is-live { color:#C62828; display:flex; align-items:center; gap:8px; }
.vc-embed__label.is-live::before { content:""; width:8px; height:8px; border-radius:50%;
  background:#C62828; flex:none; animation:vc-pulse 1.6s ease-in-out infinite; }
@keyframes vc-pulse { 0%,100% { opacity:1; transform:scale(1); }
  50% { opacity:.4; transform:scale(.8); } }
@media (prefers-reduced-motion: reduce) {
  .vc-embed__label.is-live::before { animation:none; }
}


/* ============================================================
   v1.54 影音牆具名三格
   ============================================================ */
.vc-wall-set { display:contents; }
.vc-wall-set figure { margin:0; }
.vc-wall-set a { text-decoration:none; display:block; }
.vc-wall-set img { width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:5px; display:block; }
.vc-wall-set figcaption { font-size:14.5px; color:#EDEAE4; margin-top:12px; line-height:1.6; }
.vc-wall-set small { color:var(--vc-muted); font-size:12.5px; }
.vc-wall-set__label { display:block; font-size:11px; letter-spacing:.14em;
  color:var(--vc-accent-lite); font-weight:700; margin-bottom:5px; }


/* v1.56 影音牆第一格（最新直播） */
.vc-wall-latest { display:contents; }
.vc-wall-latest figure { margin:0; }
.vc-wall-latest a { text-decoration:none; display:block; }
.vc-wall-latest img { width:100%; aspect-ratio:16/9; object-fit:cover;
  border-radius:5px; display:block; }
.vc-wall-latest figcaption { font-size:14.5px; color:#EDEAE4; margin-top:12px; line-height:1.6; }
.vc-wall-latest small { color:var(--vc-muted); font-size:12.5px; }
.vc-wall-set__label.is-live { color:#FF6B5A; display:inline-flex; align-items:center; gap:6px; }
.vc-wall-set__label.is-live::before { content:""; width:7px; height:7px; border-radius:50%;
  background:#FF6B5A; animation:vc-pulse 1.6s ease-in-out infinite; }


/* ============================================================
   v1.58 隱藏頁面標題但保留間距
   選單項目 → 頁面顯示 → 頁面類別 填 vc-hide-title
   或：全站首頁一律隱藏（下面第二段）
   ============================================================ */
.vc-hide-title .vc-body .page-header h1,
.vc-hide-title .vc-body .page-header h2 { display:none; }
.vc-hide-title .vc-body .page-header { border-bottom:0; padding-bottom:0; margin-bottom:24px; }

/* 首頁：標題不顯示，但保留原本的上下留白 */
body.vc-is-home .vc-body .page-header { border-bottom:0; padding:0; margin:0 0 40px; }
body.vc-is-home .vc-body .page-header h1,
body.vc-is-home .vc-body .page-header h2,
body.vc-is-home .vc-body .page-header .page-title { display:none; }


/* ============================================================
   v1.59 首頁：關閉頁面標題後仍保留與上方區塊的距離
   ============================================================ */
body.vc-is-home .vc-body { padding-top:64px; }
@media (max-width:767px) { body.vc-is-home .vc-body { padding-top:44px; } }

/* 內容區各區塊之間的垂直間距（近期活動與上方主日信息之間） */
.vc-main > * + * { margin-top:72px; }
.vc-main > *:first-child { margin-top:0; }
@media (max-width:767px) { .vc-main > * + * { margin-top:48px; } }


/* ============================================================
   v1.60 近期活動自動填入（沿用 .vc-events 既有樣式）
   ============================================================ */
.vc-events-auto { display:flex; flex-direction:column; gap:12px; }
.vc-events-auto:empty { min-height:0; }


/* ============================================================
   v1.61 近期活動：去掉外層白框、列加寬、日期放大
   （與右欄「一週聚會」的卡片高度、留白對齊）
   ============================================================ */

/* 外層若被包了一層卡片（模組 chrome 或 wrapper），還原成透明 */
.vc-events-auto,
.vc-events,
.vc-split-b > div > .card,
.vc-split-b > div > .vc-card {
  background:transparent !important; border:0 !important;
  border-radius:0 !important; padding:0 !important; box-shadow:none !important; }

/* 每一列：滿寬、加高、留白加大 */
.vc-events-auto .vc-event,
.vc-events .vc-event { width:100%; padding:22px 28px; gap:26px;
  border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  background:#fff; transition:border-color .15s ease; }
.vc-events-auto .vc-event:hover,
.vc-events .vc-event:hover { border-color:var(--vc-accent); }

/* 日期方塊放大 */
.vc-events-auto .vc-event__date,
.vc-events .vc-event__date { width:72px; }
.vc-events-auto .vc-event__date span,
.vc-events .vc-event__date span { font-size:12px; letter-spacing:.16em; }
.vc-events-auto .vc-event__date strong,
.vc-events .vc-event__date strong { font-size:38px; line-height:1.05; margin-top:2px; }

/* 日期與內容之間加一道細分隔線，跟右欄的列線呼應 */
.vc-events-auto .vc-event__date,
.vc-events .vc-event__date { border-right:1px solid var(--vc-line); padding-right:24px; }

.vc-events-auto .vc-event__body strong,
.vc-events .vc-event__body strong { font-size:18px; line-height:1.5; }
.vc-events-auto .vc-event__body small,
.vc-events .vc-event__body small { font-size:14px; margin-top:7px; }

@media (max-width:767px) {
  .vc-events-auto .vc-event,
  .vc-events .vc-event { padding:18px 20px; gap:18px; }
  .vc-events-auto .vc-event__date,
  .vc-events .vc-event__date { width:58px; padding-right:16px; }
  .vc-events-auto .vc-event__date strong,
  .vc-events .vc-event__date strong { font-size:30px; }
  .vc-events-auto .vc-event__body strong,
  .vc-events .vc-event__body strong { font-size:16.5px; }
}


/* ============================================================
   v1.62 兩欄一致：外框全部拿掉，改用線與留白組織
   ============================================================ */

/* 任何包住活動列或時間表的外層容器都還原成透明 */
.vc-split-b .vc-events-auto,
.vc-split-b .vc-events,
.vc-split-b .vc-timetable,
.vc-split-b > div > .card,
.vc-split-b > div > .vc-card,
.vc-split-b > div > div:not(.vc-sec-head):not(.vc-event):not(.vc-tt) {
  background:transparent !important; border:0 !important;
  border-radius:0 !important; padding:0 !important; box-shadow:none !important; }

/* 活動列本身保留白底細框（左欄），hover 不變色，避免整框看起來被選取 */
.vc-split-b .vc-event { background:#fff !important; border:1px solid var(--vc-line) !important;
  border-radius:var(--vc-radius) !important; padding:22px 28px !important; }
.vc-split-b .vc-event:hover { border-color:var(--vc-line) !important; }

/* ---------- 右欄 一週聚會：無外框、字級與左欄對齊 ---------- */
.vc-split-b .vc-timetable > div { display:flex; justify-content:space-between;
  gap:20px; align-items:baseline;
  padding:18px 4px !important; border-bottom:1px solid var(--vc-line) !important;
  font-size:17px !important; }
.vc-split-b .vc-timetable > div:first-child { border-top:1px solid var(--vc-line) !important; }
.vc-split-b .vc-timetable > div > span:first-child { color:var(--vc-ink); font-weight:500; }
.vc-split-b .vc-timetable time { font-family:ui-monospace,monospace; font-size:15px;
  color:var(--vc-ink-2); white-space:nowrap; letter-spacing:.02em; }

/* 最下方「完整聚會時間表」做成可點的整寬按鈕 */
.vc-split-b .vc-timetable > p { margin:20px 0 0 !important; padding:0 !important; }
.vc-split-b .vc-timetable > p > a,
.vc-tt-cta { display:flex; align-items:center; justify-content:space-between;
  gap:14px; width:100%; box-sizing:border-box;
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:20px 26px; font-size:17px; font-weight:500; color:var(--vc-ink) !important;
  text-decoration:none; transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-split-b .vc-timetable > p > a::after,
.vc-tt-cta::after { content:"→"; color:var(--vc-accent); font-size:18px; }
.vc-split-b .vc-timetable > p > a:hover,
.vc-tt-cta:hover { background:var(--vc-accent); border-color:var(--vc-accent);
  color:#fff !important; text-decoration:none; }
.vc-split-b .vc-timetable > p > a:hover::after,
.vc-tt-cta:hover::after { color:#fff; }
.vc-split-b .vc-timetable > p > a:focus-visible,
.vc-tt-cta:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

@media (max-width:767px) {
  .vc-split-b .vc-event { padding:18px 20px !important; }
  .vc-split-b .vc-timetable > div { font-size:16px !important; padding:15px 2px !important; }
  .vc-split-b .vc-timetable > p > a,
  .vc-tt-cta { padding:17px 20px; font-size:16px; }
}


/* ============================================================
   v1.63 兩欄對齊：左欄去外框、AUG 不斷行、右欄改白底卡片
   ============================================================ */

/* 左欄：把包住活動列的任何一層外框徹底移除（含模組 chrome） */
.vc-split-b > div > div,
.vc-split-b .moduletable,
.vc-split-b .card,
.vc-split-b .card-body,
.vc-split-b .vc-events,
.vc-split-b .vc-events-auto,
.vc-split-b .vc-timetable {
  background:transparent !important; border:0 !important;
  border-radius:0 !important; padding:0 !important; box-shadow:none !important; }

/* 兩欄的標題區留白一致，頂端才會對齊 */
.vc-split-b > div > .vc-sec-head { margin:0 0 26px !important; }

/* 活動列：白底細框，日期不斷行 */
.vc-split-b .vc-event { background:#fff !important;
  border:1px solid var(--vc-line) !important; border-radius:var(--vc-radius) !important;
  padding:20px 26px !important; gap:24px !important; align-items:center !important; }
.vc-split-b .vc-event:hover { border-color:var(--vc-line) !important; }
.vc-split-b .vc-event__date { width:auto !important; min-width:64px;
  padding-right:22px !important; border-right:1px solid var(--vc-line) !important; }
.vc-split-b .vc-event__date span { display:block; white-space:nowrap;
  font-size:11.5px !important; letter-spacing:.14em !important; }
.vc-split-b .vc-event__date strong { font-size:34px !important; line-height:1.05 !important; }
.vc-split-b .vc-event__body strong { font-size:17px !important; line-height:1.5 !important; }
.vc-split-b .vc-event__body small { font-size:13.5px !important; margin-top:6px !important; }

/* 右欄：改成白底卡片列，與左欄同樣的視覺重量 */
.vc-split-b .vc-timetable { display:flex !important; flex-direction:column; gap:12px !important; }
.vc-split-b .vc-timetable > div { display:flex; justify-content:space-between;
  align-items:center; gap:20px;
  background:#fff !important; border:1px solid var(--vc-line) !important;
  border-radius:var(--vc-radius) !important; padding:20px 26px !important;
  font-size:17px !important; }
.vc-split-b .vc-timetable > div:first-child { border-top:1px solid var(--vc-line) !important; }
.vc-split-b .vc-timetable > div > span:first-child { color:var(--vc-ink); font-weight:500; }
.vc-split-b .vc-timetable time { font-family:ui-monospace,monospace; font-size:15px;
  color:var(--vc-ink-2); white-space:nowrap; }

/* 完整聚會時間表：同寬同高的按鈕 */
.vc-split-b .vc-timetable > p { margin:0 !important; }
.vc-split-b .vc-timetable > p > a { display:flex !important; align-items:center;
  justify-content:space-between; gap:14px; width:100%; box-sizing:border-box;
  background:#fff !important; border:1px solid var(--vc-line) !important;
  border-radius:var(--vc-radius) !important; padding:20px 26px !important;
  font-size:17px; font-weight:500; color:var(--vc-ink) !important; text-decoration:none;
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-split-b .vc-timetable > p > a:hover { background:var(--vc-accent) !important;
  border-color:var(--vc-accent) !important; color:#fff !important; }

@media (max-width:767px) {
  .vc-split-b .vc-event { padding:16px 18px !important; gap:16px !important; }
  .vc-split-b .vc-event__date { min-width:52px; padding-right:14px !important; }
  .vc-split-b .vc-event__date strong { font-size:28px !important; }
  .vc-split-b .vc-timetable > div,
  .vc-split-b .vc-timetable > p > a { padding:16px 18px !important; font-size:16px !important; }
}


/* ============================================================
   v1.64 左欄外框：用 :has() 精準命中包住活動列的任何容器
   ============================================================ */
.vc-split-b div:has(> .vc-event),
.vc-split-b div:has(> .vc-events-auto),
.vc-split-b div:has(> div > .vc-event) {
  background:transparent !important; border:0 !important;
  border-radius:0 !important; padding:0 !important;
  box-shadow:none !important; }

/* 活動列本身要保留白底細框，別被上面那條掃到 */
.vc-split-b .vc-event { background:#fff !important;
  border:1px solid var(--vc-line) !important;
  border-radius:var(--vc-radius) !important;
  padding:20px 26px !important; }

/* 完整聚會時間表：箭頭只留 CSS 產生的那一個 */
.vc-split-b .vc-timetable > p > a::after { content:"→"; color:var(--vc-accent); font-size:18px; }
.vc-split-b .vc-timetable > p > a:hover::after { color:#fff; }


/* v1.66 近期活動列撐滿整欄，只留右側 56px 空隙 */
.vc-split-b > div:first-child { min-width:0; }
.vc-split-b .vc-events-auto,
.vc-split-b .vc-events { display:flex !important; flex-direction:column !important;
  align-items:stretch !important; width:auto !important; box-sizing:border-box;
  margin-right:56px !important; }
.vc-split-b .vc-event { width:auto !important; box-sizing:border-box; }
@media (max-width:991px) {
  .vc-split-b .vc-events-auto,
  .vc-split-b .vc-events { margin-right:0 !important; }
}


/* ============================================================
   v1.67 近期活動列真正撐滿整欄
   前一版沒生效是因為外層某處還有寬度限制，這裡把整條鏈都解開。
   ============================================================ */
.vc-split-b { align-items:start; }
.vc-split-b > div { min-width:0; width:100%; }
.vc-split-b > div > div,
.vc-split-b .vc-events,
.vc-split-b .vc-events-auto {
  width:100% !important; max-width:none !important; box-sizing:border-box; }
.vc-split-b .vc-events-auto { display:flex !important; flex-direction:column !important;
  align-items:stretch !important; gap:12px !important; margin:0 !important; }
.vc-split-b .vc-event { width:100% !important; max-width:none !important;
  flex:0 0 auto; box-sizing:border-box; }

/* 左欄與右欄之間的空隙由 grid gap 負責，不要再加 margin */
.vc-split-b { gap:56px !important; }
@media (max-width:991px) { .vc-split-b { gap:40px !important; } }


/* v1.68 近期活動字級放大 */
.vc-split-b .vc-event__body strong { font-size:19px !important; line-height:1.5 !important; }
.vc-split-b .vc-event__body small { font-size:15px !important; margin-top:8px !important; }
.vc-split-b .vc-event__date strong { font-size:36px !important; }
.vc-split-b .vc-event__date span { font-size:12px !important; }
@media (max-width:767px) {
  .vc-split-b .vc-event__body strong { font-size:17px !important; }
  .vc-split-b .vc-event__body small { font-size:14px !important; }
  .vc-split-b .vc-event__date strong { font-size:29px !important; }
}


/* v1.69 近期活動字級再放大 */
.vc-split-b .vc-event__body strong { font-size:21px !important; }
.vc-split-b .vc-event__body small { font-size:16px !important; }
.vc-split-b .vc-event__date strong { font-size:40px !important; }
.vc-split-b .vc-event { padding:24px 30px !important; }
@media (max-width:767px) {
  .vc-split-b .vc-event__body strong { font-size:18px !important; }
  .vc-split-b .vc-event__body small { font-size:14.5px !important; }
  .vc-split-b .vc-event__date strong { font-size:31px !important; }
  .vc-split-b .vc-event { padding:18px 20px !important; }
}


/* v1.70 一週聚會自動填入（沿用 .vc-timetable 樣式） */
.vc-gatherings-auto { display:flex; flex-direction:column; gap:12px; }
.vc-split-b .vc-gatherings-auto > div { display:flex; justify-content:space-between;
  align-items:center; gap:20px; background:#fff !important;
  border:1px solid var(--vc-line) !important; border-radius:var(--vc-radius) !important;
  padding:20px 26px !important; font-size:17px !important; }
.vc-split-b .vc-gatherings-auto > div > span:first-child { color:var(--vc-ink); font-weight:500; }
.vc-split-b .vc-gatherings-auto small { display:block; font-size:13.5px;
  color:var(--vc-muted); font-weight:400; margin-top:4px; }
.vc-split-b .vc-gatherings-auto time { font-family:ui-monospace,monospace; font-size:15px;
  color:var(--vc-ink-2); white-space:nowrap; }
.vc-split-b .vc-gatherings-auto > p { margin:0 !important; }
.vc-split-b .vc-gatherings-auto > p > a { display:flex !important; align-items:center;
  justify-content:space-between; gap:14px; width:100%; box-sizing:border-box;
  background:#fff !important; border:1px solid var(--vc-line) !important;
  border-radius:var(--vc-radius) !important; padding:20px 26px !important;
  font-size:17px; font-weight:500; color:var(--vc-ink) !important; text-decoration:none;
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-split-b .vc-gatherings-auto > p > a::after { content:"→"; color:var(--vc-accent); font-size:18px; }
.vc-split-b .vc-gatherings-auto > p > a:hover { background:var(--vc-accent) !important;
  border-color:var(--vc-accent) !important; color:#fff !important; }
.vc-split-b .vc-gatherings-auto > p > a:hover::after { color:#fff; }
@media (max-width:767px) {
  .vc-split-b .vc-gatherings-auto > div,
  .vc-split-b .vc-gatherings-auto > p > a { padding:16px 18px !important; font-size:16px !important; }
}


/* ============================================================
   v1.73 智慧聚會查詢框
   ============================================================ */
.vc-finder { display:flex; flex-direction:column; gap:14px; }

.vc-finder__input { width:100%; box-sizing:border-box;
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:20px 24px; font:inherit; font-size:17px; color:var(--vc-ink);
  transition:border-color .15s ease; -webkit-appearance:none; }
.vc-finder__input::placeholder { color:var(--vc-muted); }
.vc-finder__input:focus { outline:none; border-color:var(--vc-accent); }
.vc-finder__input:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

.vc-finder__hint { display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  font-size:13px; color:var(--vc-muted); }
.vc-finder__hint button { font:inherit; font-size:13.5px; cursor:pointer;
  background:#fff; border:1px solid var(--vc-line); border-radius:999px;
  padding:7px 15px; color:var(--vc-ink-2);
  transition:border-color .15s ease, color .15s ease, background .15s ease; }
.vc-finder__hint button:hover { border-color:var(--vc-accent); color:var(--vc-accent); }
.vc-finder__hint button:active { background:var(--vc-accent-soft); }
.vc-finder__hint button:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

.vc-finder__results { display:flex; flex-direction:column; gap:12px; }
.vc-finder__label { margin:0; font-size:11.5px; letter-spacing:.16em;
  color:var(--vc-accent); font-weight:700; }
.vc-finder__empty { margin:0; background:#fff; border:1px solid var(--vc-line);
  border-radius:var(--vc-radius); padding:22px 26px;
  font-size:15.5px; color:var(--vc-ink-2); line-height:1.8; }

.vc-finder__row { display:flex; justify-content:space-between; align-items:center; gap:20px;
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:20px 26px; font-size:17px; }
.vc-finder__row > span:first-child { color:var(--vc-ink); font-weight:500; }
.vc-finder__row small { display:block; font-size:13.5px; color:var(--vc-muted);
  font-weight:400; margin-top:4px; }
.vc-finder__row time { font-family:ui-monospace,monospace; font-size:14.5px;
  color:var(--vc-ink-2); white-space:nowrap; }

.vc-finder__cta { margin:0; }
.vc-finder__cta > a { display:flex; align-items:center; justify-content:space-between;
  gap:14px; width:100%; box-sizing:border-box;
  background:#fff; border:1px solid var(--vc-line); border-radius:var(--vc-radius);
  padding:20px 26px; font-size:17px; font-weight:500;
  color:var(--vc-ink) !important; text-decoration:none;
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-finder__cta > a::after { content:"→"; color:var(--vc-accent); font-size:18px; }
.vc-finder__cta > a:hover { background:var(--vc-accent); border-color:var(--vc-accent);
  color:#fff !important; }
.vc-finder__cta > a:hover::after { color:#fff; }

@media (max-width:767px) {
  .vc-finder__input { padding:16px 18px; font-size:16px; }
  .vc-finder__row,
  .vc-finder__empty,
  .vc-finder__cta > a { padding:16px 18px; font-size:16px; }
}


/* v1.75 智慧查詢框字級放大，與左欄活動列對齊 */
.vc-finder__input { font-size:19px !important; padding:22px 26px !important; }
.vc-finder__row { font-size:19px !important; padding:24px 30px !important; }
.vc-finder__row small { font-size:15px !important; margin-top:5px !important; }
.vc-finder__row time { font-size:16px !important; }
.vc-finder__hint button { font-size:15px !important; padding:9px 17px !important; }
.vc-finder__hint { font-size:14px !important; }
.vc-finder__label { font-size:12px !important; }
.vc-finder__empty { font-size:17px !important; padding:24px 30px !important; }
.vc-finder__cta > a { font-size:19px !important; padding:24px 30px !important; }

@media (max-width:767px) {
  .vc-finder__input { font-size:17px !important; padding:17px 19px !important; }
  .vc-finder__row,
  .vc-finder__empty,
  .vc-finder__cta > a { font-size:17px !important; padding:18px 20px !important; }
  .vc-finder__hint button { font-size:14px !important; }
}


/* v1.76 查詢框字級再放大 */
.vc-finder__input { font-size:21px !important; padding:24px 28px !important; }
.vc-finder__row { font-size:21px !important; padding:26px 32px !important; }
.vc-finder__row small { font-size:16px !important; }
.vc-finder__row time { font-size:17px !important; }
.vc-finder__hint button { font-size:16px !important; padding:10px 18px !important; }
.vc-finder__empty { font-size:18px !important; }
.vc-finder__cta > a { font-size:21px !important; padding:26px 32px !important; }

@media (max-width:767px) {
  .vc-finder__input { font-size:18px !important; padding:18px 20px !important; }
  .vc-finder__row,
  .vc-finder__empty,
  .vc-finder__cta > a { font-size:18px !important; padding:18px 20px !important; }
  .vc-finder__hint button { font-size:14.5px !important; }
}


/* v1.77 查詢框：字級微收、輸入框不換行、今日提示列 */
.vc-finder__input { font-size:19px !important; padding:22px 26px !important;
  text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
.vc-finder__row { font-size:19px !important; padding:23px 28px !important; }
.vc-finder__row small { font-size:15px !important; }
.vc-finder__row time { font-size:16px !important; }
.vc-finder__hint button { font-size:15px !important; padding:9px 17px !important; }
.vc-finder__empty { font-size:17px !important; }
.vc-finder__cta > a { font-size:19px !important; padding:23px 28px !important; }

/* 「今天（週二）」與「今日完整請點選下方查詢」同一行，左右分置 */
.vc-finder__label { display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; flex-wrap:wrap; }
.vc-finder__label em { font-style:normal; font-size:13px; letter-spacing:0;
  color:var(--vc-muted); font-weight:400; }

@media (max-width:767px) {
  .vc-finder__input { font-size:17px !important; padding:17px 19px !important; }
  .vc-finder__row,
  .vc-finder__empty,
  .vc-finder__cta > a { font-size:17px !important; padding:18px 20px !important; }
  .vc-finder__hint button { font-size:14px !important; }
  .vc-finder__label em { font-size:12.5px; }
}


/* v1.79 完整聚會時間表：去掉白底與外框，改成純文字連結 */
.vc-finder__cta > a { background:transparent !important; border:0 !important;
  padding:6px 2px !important; justify-content:flex-start !important;
  gap:10px !important; color:var(--vc-accent) !important; }
.vc-finder__cta > a:hover { background:transparent !important;
  color:var(--vc-ink) !important; }
.vc-finder__cta > a:hover::after { color:var(--vc-ink); }
.vc-finder__cta { margin-top:6px !important; }


/* ============================================================
   v1.80 近期活動＋查詢區塊：滿版暖灰底
   要調深淺改 --vc-band 一行即可（#F3F0EA 淺 → #EAE5DC 深）
   ============================================================ */
:root { --vc-band: #F1EDE5; }

.vc-split-b { position:relative; z-index:0; }
.vc-split-b::before { content:""; position:absolute; z-index:-1;
  left:50%; transform:translateX(-50%); width:100vw;
  top:-96px; bottom:-72px;
  background:var(--vc-band);
  border-top:1px solid var(--vc-line);
  border-bottom:1px solid var(--vc-line); }

/* 上方標題也要落在灰底上，所以往上多留一段 */
.vc-main > .vc-split-b,
.vc-main > div:has(> .vc-split-b) { margin-top:96px !important; }

@media (max-width:767px) {
  .vc-split-b::before { top:-64px; bottom:-52px; }
  .vc-main > .vc-split-b,
  .vc-main > div:has(> .vc-split-b) { margin-top:64px !important; }
}


/* ============================================================
   v1.81 近期活動區塊：隨機照片當滿版底圖
   照片由 randompic.php 從 images/pics/random 隨機取，
   上面壓一層暖白半透明，確保文字可讀。
   ============================================================ */
.vc-split-b::before { background:var(--vc-band) !important; }

.vc-split-b::after { content:""; position:absolute; z-index:-1;
  left:50%; transform:translateX(-50%); width:100vw;
  top:-96px; bottom:-72px;
  background-image:
    linear-gradient(rgba(251,250,248,.90), rgba(251,250,248,.90)),
    var(--vc-band-img, none);
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  border-top:1px solid var(--vc-line);
  border-bottom:1px solid var(--vc-line);
  pointer-events:none; }

@media (max-width:767px) {
  .vc-split-b::after { top:-64px; bottom:-52px;
    background-image:
      linear-gradient(rgba(251,250,248,.94), rgba(251,250,248,.94)),
      var(--vc-band-img, none); }
}


/* ============================================================
   v1.82 完整聚會時間表頁（.vc-meeting-finder）
   結構：身份標籤篩選列 + 依分類分組的聚會清單
   用法：文章裡放 <div class="vc-meeting-finder"></div>
        選單項目 → 頁面顯示 → 頁面類別 填 vc-full
   ============================================================ */
.vc-meeting-finder { display:flex; flex-direction:column; gap:0; }

.vc-tt-loading { margin:0; padding:56px 0; text-align:center;
  font-size:16px; color:var(--vc-muted); }

/* ---------- 篩選列：滿版淺帶、捲動時吸附 ---------- */
.vc-tt-filters { position:sticky; top:0; z-index:20;
  display:flex; flex-wrap:wrap; gap:10px; align-items:center;
  padding:20px 0 22px; margin-bottom:8px; }
.vc-tt-filters::before { content:""; position:absolute; z-index:-1;
  left:50%; transform:translateX(-50%); width:100vw; top:0; bottom:0;
  background:var(--vc-bg); border-bottom:1px solid var(--vc-line); }

.vc-tt-tag { font:inherit; font-size:15px; cursor:pointer;
  background:#fff; border:1px solid var(--vc-line); border-radius:999px;
  padding:10px 20px; color:var(--vc-ink-2); white-space:nowrap;
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-tt-tag:hover { border-color:var(--vc-accent); color:var(--vc-accent); }
.vc-tt-tag:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }
.vc-tt-tag.is-active { background:var(--vc-accent); border-color:var(--vc-accent);
  color:#fff; font-weight:500; }

/* ---------- 分組 ---------- */
.vc-tt-groups { display:flex; flex-direction:column; gap:0; }

.vc-tt-group { padding:52px 0 0; }
.vc-tt-group[hidden] { display:none; }
.vc-tt-group > h3 { margin:0 0 4px; padding-bottom:14px;
  font-family:var(--vc-font-title); font-size:26px; font-weight:700;
  color:var(--vc-ink); border-bottom:2px solid var(--vc-ink); }

.vc-tt-rows { display:flex; flex-direction:column; }

/* ---------- 每一列 ---------- */
.vc-tt-row { display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:24px; align-items:baseline;
  padding:22px 4px; border-bottom:1px solid var(--vc-line);
  transition:background .15s ease; }
.vc-tt-row:hover { background:var(--vc-accent-soft); }

.vc-tt-name strong { display:block; font-size:20px; font-weight:500;
  color:var(--vc-ink); line-height:1.5; }
.vc-tt-name small { display:block; font-size:14.5px; color:var(--vc-ink-2);
  line-height:1.7; margin-top:6px; white-space:pre-line; }

.vc-tt-row time,
.vc-tt-when { font-family:ui-monospace,monospace; font-size:16px;
  color:var(--vc-accent); font-weight:700; white-space:nowrap;
  text-align:right; }

/* 標籤小字（若程式有輸出） */
.vc-tt-row .vc-tt-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.vc-tt-row .vc-tt-tags span { font-size:12px; background:var(--vc-accent-soft);
  color:var(--vc-accent); padding:4px 10px; border-radius:3px; }

/* ---------- 手機 ---------- */
@media (max-width:767px) {
  .vc-tt-filters { padding:14px 0 16px; gap:8px; }
  .vc-tt-tag { font-size:14px; padding:9px 16px; }
  .vc-tt-group { padding-top:36px; }
  .vc-tt-group > h3 { font-size:21px; padding-bottom:12px; }
  .vc-tt-row { grid-template-columns:1fr; gap:6px; padding:18px 2px; }
  .vc-tt-name strong { font-size:18px; }
  .vc-tt-row time,
  .vc-tt-when { text-align:left; font-size:15px; }
}

/* ---------- 列印 ---------- */
@media print {
  .vc-tt-filters { display:none !important; }
  .vc-tt-row:hover { background:none; }
  .vc-tt-group { padding-top:24px; break-inside:avoid; }
}


/* ============================================================
   v1.83 聚會時間表頁：字級全面放大三級、內容寬度放到 2/3
   ============================================================ */

/* 內容不受文章 70ch 限制，放到頁面的 2/3 */
.vc-meeting-finder { max-width:none !important; width:100%; }
.com-content-article__body:has(.vc-meeting-finder),
.com-content-article:has(.vc-meeting-finder) .com-content-article__body {
  max-width:none !important; }
.vc-meeting-finder .vc-tt-groups,
.vc-meeting-finder .vc-tt-group { max-width:66%; }

/* 篩選鈕 */
.vc-tt-tag { font-size:18px !important; padding:12px 24px !important; }

/* 分類標題 */
.vc-tt-group > h3 { font-size:32px !important; padding-bottom:16px !important; }

/* 每一列 */
.vc-tt-row { padding:26px 4px !important; gap:32px !important; }
.vc-tt-name strong { font-size:24px !important; line-height:1.45 !important; }
.vc-tt-name small { font-size:17.5px !important; margin-top:7px !important; }
.vc-tt-row time,
.vc-tt-when { font-size:19px !important; }

.vc-tt-loading { font-size:19px !important; }

@media (max-width:1200px) {
  .vc-meeting-finder .vc-tt-groups,
  .vc-meeting-finder .vc-tt-group { max-width:82%; }
}
@media (max-width:991px) {
  .vc-meeting-finder .vc-tt-groups,
  .vc-meeting-finder .vc-tt-group { max-width:none; }
}
@media (max-width:767px) {
  .vc-tt-tag { font-size:16px !important; padding:10px 18px !important; }
  .vc-tt-group > h3 { font-size:25px !important; }
  .vc-tt-row { padding:20px 2px !important; gap:8px !important; }
  .vc-tt-name strong { font-size:20px !important; }
  .vc-tt-name small { font-size:16px !important; }
  .vc-tt-row time,
  .vc-tt-when { font-size:17px !important; }
}


/* v1.84 時間表頁：清單撐滿內容欄（原本 66% 在筆電上太窄） */
.vc-meeting-finder,
.vc-meeting-finder .vc-tt-groups,
.vc-meeting-finder .vc-tt-group,
.vc-meeting-finder .vc-tt-rows { max-width:none !important; width:100% !important; }
.vc-meeting-finder .vc-tt-row { width:100% !important; }


/* ============================================================
   v1.85 聚會時間表頁：分類改兩欄並排
   窄螢幕自動收成一欄；每個分類不會被切斷。
   ============================================================ */
.vc-meeting-finder .vc-tt-groups {
  display:grid !important;
  grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  gap:0 56px !important;
  align-items:start; }

.vc-meeting-finder .vc-tt-group { padding-top:48px !important; break-inside:avoid; }
/* 兩欄的第一列標題上緣對齊 */
.vc-meeting-finder .vc-tt-group:nth-child(1),
.vc-meeting-finder .vc-tt-group:nth-child(2) { padding-top:8px !important; }

@media (max-width:1100px) {
  .vc-meeting-finder .vc-tt-groups {
    grid-template-columns:minmax(0, 1fr) !important; gap:0 !important; }
  .vc-meeting-finder .vc-tt-group:nth-child(2) { padding-top:48px !important; }
}
@media print {
  .vc-meeting-finder .vc-tt-groups { grid-template-columns:repeat(2, 1fr) !important; }
}


/* ============================================================
   v1.86 聚會時間表頁：加入星期篩選（身份 × 星期）
   ============================================================ */
.vc-tt-filters { display:flex !important; flex-direction:column; gap:14px;
  align-items:stretch !important; padding:22px 0 24px !important; }

.vc-tt-filterrow { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.vc-tt-filterlabel { font-size:12px; letter-spacing:.16em; font-weight:700;
  color:var(--vc-muted); min-width:42px; }

.vc-tt-day { font:inherit; font-size:18px; cursor:pointer;
  background:#fff; border:1px solid var(--vc-line); border-radius:999px;
  padding:12px 24px; color:var(--vc-ink-2); white-space:nowrap;
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-tt-day:hover { border-color:var(--vc-accent); color:var(--vc-accent); }
.vc-tt-day:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }
.vc-tt-day.is-active { background:var(--vc-ink); border-color:var(--vc-ink);
  color:#fff; font-weight:500; }

@media (max-width:767px) {
  .vc-tt-filters { gap:10px; padding:14px 0 16px !important; }
  .vc-tt-filterlabel { width:100%; min-width:0; }
  .vc-tt-day { font-size:16px; padding:10px 18px; }
}


/* ============================================================
   v1.87 語言介紹頁（英文 / 越南文）
   選單項目 → 頁面顯示 → 頁面類別 填 vc-langpage
   ============================================================ */
.vc-langpage .com-content-article__body { max-width:none; }

/* ---------- 開場 ---------- */
.vc-lang-hero { padding:8px 0 44px; border-bottom:2px solid var(--vc-ink); margin-bottom:0; }
.vc-lang-hero .vc-eyebrow { font-size:12.5px; letter-spacing:.22em; margin:0 0 18px; }
.vc-lang-hero h1 { font-family:var(--vc-font-title); font-size:clamp(34px,5vw,60px);
  line-height:1.18; margin:0; font-weight:700; max-width:22em; }
.vc-lang-hero .vc-lead { font-size:20px; line-height:1.85; color:var(--vc-ink-2);
  margin:24px 0 0; max-width:44em; }

/* ---------- 區段 ---------- */
.vc-lang-sec { padding:52px 0; border-bottom:1px solid var(--vc-line); }
.vc-lang-sec:last-child { border-bottom:0; }
.vc-lang-sec > h2 { font-family:var(--vc-font-title); font-size:13px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--vc-accent); font-weight:700; margin:0 0 24px; }
.vc-lang-sec p { font-size:18px; line-height:1.9; color:var(--vc-ink); margin:0 0 14px; max-width:46em; }
.vc-lang-sec p:last-child { margin-bottom:0; }

/* ---------- 聚會時間：大數字三欄 ---------- */
.vc-lang-times { display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px; background:var(--vc-line); border:1px solid var(--vc-line); }
.vc-lang-times > div { background:#fff; padding:30px 28px; }
.vc-lang-times strong { display:block; font-family:var(--vc-font-title);
  font-size:44px; line-height:1; color:var(--vc-ink); font-weight:700;
  font-variant-numeric:tabular-nums; }
.vc-lang-times span { display:block; font-size:16px; line-height:1.6;
  color:var(--vc-ink-2); margin-top:12px; }

/* ---------- 重點面板（給留學生） ---------- */
.vc-lang-panel { background:var(--vc-accent-soft); padding:44px 46px; }
.vc-lang-panel h2 { color:var(--vc-accent-700, var(--vc-accent)); }
.vc-lang-panel dl { margin:0; display:grid; gap:22px; }
.vc-lang-panel dt { font-size:20px; font-weight:700; color:var(--vc-ink);
  font-family:var(--vc-font-title); line-height:1.4; }
.vc-lang-panel dd { margin:6px 0 0; font-size:17px; line-height:1.8; color:var(--vc-ink-2); }
.vc-lang-panel .vc-lang-free { margin-top:30px; padding-top:24px;
  border-top:1px solid #D8CFC0; font-size:20px; font-weight:700;
  color:var(--vc-ink); font-family:var(--vc-font-title); }

/* ---------- 動作鈕 ---------- */
.vc-lang-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.vc-lang-actions a { display:inline-flex; align-items:center; gap:8px;
  background:var(--vc-accent); color:#fff !important; text-decoration:none;
  padding:15px 28px; border-radius:999px; font-size:17px; font-weight:500;
  transition:background .15s ease; }
.vc-lang-actions a:hover { background:var(--vc-ink); }
.vc-lang-actions a.is-ghost { background:transparent; border:1px solid var(--vc-line);
  color:var(--vc-ink) !important; }
.vc-lang-actions a.is-ghost:hover { border-color:var(--vc-accent);
  color:var(--vc-accent) !important; background:transparent; }
.vc-lang-actions a:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

/* ---------- 聯絡：兩欄 ---------- */
.vc-lang-contact { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.vc-lang-contact dl { margin:0; }
.vc-lang-contact dt { font-size:11.5px; letter-spacing:.16em; color:var(--vc-muted);
  font-weight:700; margin-bottom:6px; }
.vc-lang-contact dd { margin:0 0 20px; font-size:18px; color:var(--vc-ink); }
.vc-lang-contact dd:last-child { margin-bottom:0; }

/* ---------- 結尾備註 ---------- */
.vc-lang-note { font-size:16px; line-height:1.85; color:var(--vc-muted);
  border-left:2px solid var(--vc-accent); padding:4px 0 4px 20px; max-width:46em; }

@media (max-width:767px) {
  .vc-lang-hero { padding-bottom:32px; }
  .vc-lang-hero .vc-lead { font-size:18px; }
  .vc-lang-sec { padding:36px 0; }
  .vc-lang-sec p { font-size:17px; }
  .vc-lang-times { grid-template-columns:1fr; }
  .vc-lang-times > div { padding:22px 20px; }
  .vc-lang-times strong { font-size:34px; }
  .vc-lang-panel { padding:28px 22px; }
  .vc-lang-panel dt { font-size:18px; }
  .vc-lang-contact { grid-template-columns:1fr; gap:24px; }
}


/* v1.88 近期活動區塊底圖：白紗降低 15%（照片更明顯） */
.vc-split-b::after {
  background-image:
    linear-gradient(rgba(251,250,248,.75), rgba(251,250,248,.75)),
    var(--vc-band-img, none) !important; }
@media (max-width:767px) {
  .vc-split-b::after {
    background-image:
      linear-gradient(rgba(251,250,248,.82), rgba(251,250,248,.82)),
      var(--vc-band-img, none) !important; }
}


/* ============================================================
   v1.89 底圖每 10 秒輪播（兩層交叉淡入）
   ============================================================ */
.vc-split-b.vc-band-anim::after {
  transition:opacity 1.4s ease; opacity:1; }

/* 第二層底圖 */
.vc-split-b.vc-band-anim > .vc-band-layer2,
.vc-split-b.vc-band-anim::marker { display:none; }

.vc-split-b.vc-band-anim { --vc-band-fade: 1.4s; }

.vc-split-b.vc-band-anim::after {
  background-image:
    linear-gradient(rgba(251,250,248,.75), rgba(251,250,248,.75)),
    var(--vc-band-img, none) !important; }

.vc-split-b.vc-band-anim.is-alt::after {
  background-image:
    linear-gradient(rgba(251,250,248,.75), rgba(251,250,248,.75)),
    var(--vc-band-img-2, none) !important; }

/* 交叉淡入：切換瞬間讓整層淡一下再回來，視覺上是溶接 */
.vc-split-b.vc-band-anim::after { animation:none; }
@keyframes vc-band-cross { 0% { opacity:.55; } 100% { opacity:1; } }
.vc-split-b.vc-band-anim.is-alt::after,
.vc-split-b.vc-band-anim:not(.is-alt)::after {
  animation:vc-band-cross 1.4s ease; }

@media (prefers-reduced-motion: reduce) {
  .vc-split-b.vc-band-anim::after { animation:none !important; }
}


/* ============================================================
   v1.90 底圖：白紗再降 50%（照片更清楚）＋ 上緣界線落在留白正中
   ============================================================ */
.vc-split-b::after,
.vc-split-b.vc-band-anim::after {
  background-image:
    linear-gradient(rgba(251,250,248,.38), rgba(251,250,248,.38)),
    var(--vc-band-img, none) !important; }
.vc-split-b.vc-band-anim.is-alt::after {
  background-image:
    linear-gradient(rgba(251,250,248,.38), rgba(251,250,248,.38)),
    var(--vc-band-img-2, none) !important; }

/* 卡片在較濃的底圖上仍要清楚：加一點陰影把它們托起來 */
.vc-split-b .vc-event,
.vc-split-b .vc-finder__row,
.vc-split-b .vc-finder__input,
.vc-split-b .vc-finder__empty,
.vc-split-b .vc-finder__hint button {
  box-shadow:0 2px 10px -6px rgba(35,33,30,.28); }

/* 標題與小標在照片上需要更強的對比 */
.vc-split-b .vc-sec-head h2 { color:var(--vc-ink); }
.vc-split-b .vc-finder__label span { color:var(--vc-accent); }

/* ---------- 上下界線各落在兩區塊留白的正中 ----------
   上方區塊（主日信息）與本區塊之間的間距是 72px（v1.59），
   所以帶子往上延伸 36px，界線剛好在留白中央；
   下方到影音牆之間同理。 */
.vc-split-b::before,
.vc-split-b::after { top:-36px !important; bottom:-36px !important; }

@media (max-width:767px) {
  .vc-split-b::after,
  .vc-split-b.vc-band-anim::after {
    background-image:
      linear-gradient(rgba(251,250,248,.52), rgba(251,250,248,.52)),
      var(--vc-band-img, none) !important; }
  .vc-split-b.vc-band-anim.is-alt::after {
    background-image:
      linear-gradient(rgba(251,250,248,.52), rgba(251,250,248,.52)),
      var(--vc-band-img-2, none) !important; }
  .vc-split-b::before,
  .vc-split-b::after { top:-24px !important; bottom:-24px !important; }
}


/* ============================================================
   v1.91 近期活動區塊：移除照片底圖，回到素色暖灰
   ============================================================ */
.vc-split-b::after,
.vc-split-b.vc-band-anim::after,
.vc-split-b.vc-band-anim.is-alt::after {
  background-image:none !important;
  background:var(--vc-band) !important;
  animation:none !important; }

.vc-split-b::before { background:var(--vc-band) !important; }

/* 素色底不需要陰影托 */
.vc-split-b .vc-event,
.vc-split-b .vc-finder__row,
.vc-split-b .vc-finder__input,
.vc-split-b .vc-finder__empty,
.vc-split-b .vc-finder__hint button { box-shadow:none !important; }


/* ============================================================
   v1.92 教會行事曆頁（Google 日曆嵌入）
   選單項目 → 頁面顯示 → 頁面類別 填 vc-full
   文章內容用 .vc-cal 那組結構（見交付說明）
   ============================================================ */
.vc-cal { display:flex; flex-direction:column; gap:0; }

/* ---------- 使用說明列 ---------- */
.vc-cal-note { display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px; background:var(--vc-line); border:1px solid var(--vc-line);
  margin:0 0 28px; }
.vc-cal-note > div { background:#fff; padding:22px 24px; }
.vc-cal-note dt { font-size:11.5px; letter-spacing:.16em; color:var(--vc-accent);
  font-weight:700; margin:0 0 8px; }
.vc-cal-note dd { margin:0; font-size:15.5px; line-height:1.8; color:var(--vc-ink-2); }

/* ---------- 圖例（兩個日曆的顏色） ---------- */
.vc-cal-legend { display:flex; flex-wrap:wrap; gap:10px 24px; align-items:center;
  margin:0 0 20px; font-size:15px; color:var(--vc-ink-2); }
.vc-cal-legend span { display:inline-flex; align-items:center; gap:9px; }
.vc-cal-legend i { width:13px; height:13px; border-radius:3px; flex:none; display:block; }

/* ---------- 檢視切換 ---------- */
.vc-cal-views { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 18px; }
.vc-cal-views button { font:inherit; font-size:16px; cursor:pointer;
  background:#fff; border:1px solid var(--vc-line); border-radius:999px;
  padding:11px 22px; color:var(--vc-ink-2);
  transition:background .15s ease, border-color .15s ease, color .15s ease; }
.vc-cal-views button:hover { border-color:var(--vc-accent); color:var(--vc-accent); }
.vc-cal-views button:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }
.vc-cal-views button.is-active { background:var(--vc-ink); border-color:var(--vc-ink);
  color:#fff; font-weight:500; }

/* ---------- 日曆本體 ---------- */
.vc-cal-frame { position:relative; background:#fff;
  border:1px solid var(--vc-line); overflow:hidden; }
.vc-cal-frame iframe { display:block; width:100%; height:78vh; min-height:620px;
  border:0; }

/* ---------- 動作鈕 ---------- */
.vc-cal-actions { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0 0; }
.vc-cal-actions a { display:inline-flex; align-items:center; gap:8px;
  background:var(--vc-accent); color:#fff !important; text-decoration:none;
  padding:15px 28px; border-radius:999px; font-size:17px; font-weight:500;
  transition:background .15s ease; }
.vc-cal-actions a:hover { background:var(--vc-ink); color:#fff !important; }
.vc-cal-actions a.is-ghost { background:transparent; border:1px solid var(--vc-line);
  color:var(--vc-ink) !important; }
.vc-cal-actions a.is-ghost:hover { border-color:var(--vc-accent);
  color:var(--vc-accent) !important; background:transparent; }
.vc-cal-actions a:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

/* ---------- 借用場地說明 ---------- */
.vc-cal-book { margin:44px 0 0; padding:36px 0 0; border-top:2px solid var(--vc-ink); }
.vc-cal-book > h2 { font-family:var(--vc-font-title); font-size:13px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--vc-accent); font-weight:700; margin:0 0 22px; }
.vc-cal-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.vc-cal-step { background:#fff; border:1px solid var(--vc-line); padding:28px 26px; }
.vc-cal-step strong { display:block; font-family:var(--vc-font-title);
  font-size:34px; line-height:1; color:var(--vc-accent); font-weight:700; }
.vc-cal-step b { display:block; font-size:18px; color:var(--vc-ink);
  font-weight:500; margin:14px 0 8px; }
.vc-cal-step p { margin:0; font-size:15.5px; line-height:1.8; color:var(--vc-ink-2); }

@media (max-width:991px) {
  .vc-cal-note { grid-template-columns:1fr; }
  .vc-cal-steps { grid-template-columns:1fr; }
}
@media (max-width:767px) {
  .vc-cal-frame iframe { height:68vh; min-height:480px; }
  .vc-cal-views button { font-size:15px; padding:10px 18px; }
  .vc-cal-note > div { padding:18px 20px; }
}
@media print {
  .vc-cal-views, .vc-cal-actions, .vc-cal-book { display:none !important; }
}


/* ============================================================
   v1.93 文章列表（牧者的話／信仰與生活）：正方形小圖靠左
   取代原本第一則全寬大圖的排法 —— 文字才是主體。
   ============================================================ */
.com-content-category-blog .blog-items { display:flex; flex-direction:column; gap:0; }

.com-content-category-blog .blog-item {
  display:grid; grid-template-columns:200px minmax(0,1fr); gap:32px;
  align-items:start; padding:34px 0; margin:0;
  border-bottom:1px solid var(--vc-line); border-top:0; }
.com-content-category-blog .blog-item:first-child { border-top:1px solid var(--vc-line); }

/* 圖：固定正方形，不再全寬 */
.com-content-category-blog .blog-item .item-image,
.com-content-category-blog .blog-item .vc-autopic {
  width:200px !important; height:200px !important;
  aspect-ratio:1 / 1 !important; margin:0 !important;
  overflow:hidden; flex:none; }
.com-content-category-blog .blog-item .item-image img,
.com-content-category-blog .blog-item .vc-autopic img {
  width:100% !important; height:100% !important; object-fit:cover; display:block; }

/* 沒有圖的項目：文字撐滿整列 */
.com-content-category-blog .blog-item:not(:has(.item-image)):not(:has(.vc-autopic)) {
  grid-template-columns:minmax(0,1fr); }

/* 文字欄 */
.com-content-category-blog .blog-item .page-header { margin:0 0 10px; }
.com-content-category-blog .blog-item .page-header h2 { margin:0;
  font-family:var(--vc-font-title); font-size:26px; line-height:1.4; font-weight:700; }
.com-content-category-blog .blog-item .page-header h2 a { color:var(--vc-ink); }
.com-content-category-blog .blog-item .page-header h2 a:hover { color:var(--vc-accent); text-decoration:none; }

.com-content-category-blog .blog-item .article-info,
.com-content-category-blog .blog-item .com-content-article__info {
  display:flex; flex-wrap:wrap; gap:6px 18px; margin:0 0 12px;
  font-size:14px; color:var(--vc-muted); }
.com-content-category-blog .blog-item .article-info dd { margin:0; }

.com-content-category-blog .blog-item p { margin:0 0 10px;
  font-size:17px; line-height:1.85; color:var(--vc-ink-2); max-width:64ch; }

.com-content-category-blog .blog-item .readmore { margin:14px 0 0; }
.com-content-category-blog .blog-item .readmore .btn,
.com-content-category-blog .blog-item .readmore a {
  display:inline-flex; align-items:center; gap:8px;
  background:none; border:0; padding:0;
  font-size:16px; color:var(--vc-accent) !important; font-weight:500; }
.com-content-category-blog .blog-item .readmore a::after { content:"→"; }
.com-content-category-blog .blog-item .readmore a:hover { color:var(--vc-ink) !important; text-decoration:none; }

/* 分頁 */
.com-content-category-blog .pagination { margin-top:36px; }

@media (max-width:767px) {
  .com-content-category-blog .blog-item { grid-template-columns:1fr; gap:16px; padding:26px 0; }
  .com-content-category-blog .blog-item .item-image,
  .com-content-category-blog .blog-item .vc-autopic {
    width:100% !important; height:auto !important; aspect-ratio:16 / 9 !important; }
  .com-content-category-blog .blog-item .page-header h2 { font-size:21px; }
  .com-content-category-blog .blog-item p { font-size:16px; }
}


/* ============================================================
   v1.95 文章內頁 —— 圖文繞排（editorial float）
   圖高 = 六行本文，圖旁流過六行後文字回到整欄寬，沒有空白破洞。
   本文 17px × 行高 1.85 ≈ 31px/行 → 6 行 ≈ 190px
   ============================================================ */
.com-content-article__body,
.vc-article__body { font-size:17px; line-height:1.85; color:var(--vc-ink);
  max-width:70ch; }
.com-content-article__body p,
.vc-article__body p { margin:0 0 1.5em; }

/* ---------- 主圖：浮動靠左，文繞圖 ---------- */
.com-content-article__body .item-image,
.com-content-article .item-image,
.vc-article__body .item-image {
  float:left; width:190px; margin:6px 30px 22px 0;
  /* 浮動元素不建立 BFC，圖與文的基線才能對齊 */
  shape-outside:inset(0); }

.com-content-article__body .item-image img,
.com-content-article .item-image img,
.vc-article__body .item-image img {
  display:block; width:100%; height:190px; object-fit:cover; }

/* 圖說 */
.com-content-article__body .item-image figcaption,
.com-content-article__body .item-image .caption {
  margin-top:9px; font-size:13.5px; line-height:1.6; color:var(--vc-muted); }

/* ---------- 文中插圖：同樣浮動，尺寸略大 ---------- */
.com-content-article__body p > img:only-child,
.vc-article__body p > img:only-child {
  float:left; width:260px; height:auto; margin:6px 30px 20px 0; }
.com-content-article__body p:has(> img:only-child),
.vc-article__body p:has(> img:only-child) { margin-bottom:0; }

/* 靠右浮動：圖片加 class="right" 或 align="right" */
.com-content-article__body img.right,
.com-content-article__body img[align="right"],
.com-content-article__body .item-image.right {
  float:right; margin:6px 0 22px 30px; }

/* ---------- 標題與區隔不被浮動圖壓到 ---------- */
.com-content-article__body h2,
.com-content-article__body h3,
.com-content-article__body hr,
.com-content-article__body blockquote,
.vc-article__body h2,
.vc-article__body h3 { clear:both; }

.com-content-article__body h2,
.vc-article__body h2 { font-family:var(--vc-font-title); font-size:24px;
  font-weight:700; margin:2em 0 .7em; line-height:1.4; }
.com-content-article__body h3,
.vc-article__body h3 { font-family:var(--vc-font-title); font-size:20px;
  font-weight:700; margin:1.8em 0 .6em; }

/* 文章結尾清除浮動，footer 不會爬上來 */
.com-content-article__body::after,
.vc-article__body::after { content:""; display:block; clear:both; }

/* ---------- 手機：浮動縮小但保留繞排 ---------- */
@media (max-width:767px) {
  .com-content-article__body,
  .vc-article__body { font-size:16px; }
  .com-content-article__body .item-image,
  .com-content-article .item-image,
  .vc-article__body .item-image { width:40%; margin:4px 18px 14px 0; }
  .com-content-article__body .item-image img,
  .com-content-article .item-image img { height:auto; aspect-ratio:1 / 1; }
  .com-content-article__body p > img:only-child { width:45%; margin:4px 18px 14px 0; }
}


/* ============================================================
   v1.96 列表頁摘要自動截斷（書卡）
   文字裁到三行、末尾淡出，點卡片進全文。
   不需要同工在編輯器插「閱讀更多」分隔線。
   ============================================================ */
.com-content-category-blog .blog-item { position:relative; cursor:pointer;
  transition:background .15s ease; }
.com-content-category-blog .blog-item:hover { background:var(--vc-accent-soft); }

/* 摘要裁到三行 */
.com-content-category-blog .blog-item .vc-excerpt {
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3;
  overflow:hidden; margin:0;
  font-size:17px; line-height:1.85; color:var(--vc-ink-2); max-width:64ch; }

/* 卡片整塊可點，標題連結浮在上層 */
.com-content-category-blog .blog-item .page-header h2 a { position:relative; z-index:2; }

/* 「閱讀更多」永遠在同一位置 */
.com-content-category-blog .blog-item .vc-more {
  display:inline-flex; align-items:center; gap:8px; margin-top:14px;
  font-size:16px; font-weight:500; color:var(--vc-accent); }
.com-content-category-blog .blog-item .vc-more::after { content:"→"; }
.com-content-category-blog .blog-item:hover .vc-more { color:var(--vc-ink); }

@media (max-width:767px) {
  .com-content-category-blog .blog-item .vc-excerpt { font-size:16px; -webkit-line-clamp:3; }
}


/* ============================================================
   v1.97 列表頁圖片放大 —— 從 200px 見方改成佔欄寬約 1/3
   圖與三行摘要的高度自然相當，右欄不再顯得空。
   ============================================================ */
.com-content-category-blog .blog-item {
  grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:36px; padding:40px 0; }

.com-content-category-blog .blog-item .item-image,
.com-content-category-blog .blog-item .vc-autopic {
  width:100% !important; height:auto !important;
  aspect-ratio:4 / 3 !important; }

/* 文章內頁主圖也放大 —— 兩行到十行都撐得住 */
.com-content-article__body .item-image,
.com-content-article .item-image,
.vc-article__body .item-image { width:300px; margin:6px 34px 26px 0; }
.com-content-article__body .item-image img,
.com-content-article .item-image img { height:auto; aspect-ratio:4 / 3; }

.com-content-article__body p > img:only-child { width:340px; }

@media (max-width:991px) {
  .com-content-category-blog .blog-item {
    grid-template-columns:minmax(0,240px) minmax(0,1fr); gap:28px; }
}
@media (max-width:767px) {
  .com-content-category-blog .blog-item { grid-template-columns:1fr; gap:16px; padding:28px 0; }
  .com-content-category-blog .blog-item .item-image,
  .com-content-category-blog .blog-item .vc-autopic { aspect-ratio:16 / 9 !important; }
  .com-content-article__body .item-image,
  .vc-article__body .item-image { width:45%; margin:4px 20px 16px 0; }
  .com-content-article__body p > img:only-child { width:50%; }
}


/* ============================================================
   v1.98 列表頁圖片撐滿卡片高度 + 中文兩端對齊
   ============================================================ */

/* 圖上下頂到卡片邊界，與文字欄同高 */
.com-content-category-blog .blog-item { align-items:stretch; }
.com-content-category-blog .blog-item .item-image,
.com-content-category-blog .blog-item .vc-autopic {
  height:100% !important; aspect-ratio:auto !important;
  align-self:stretch; min-height:100%; }
.com-content-category-blog .blog-item .item-image img,
.com-content-category-blog .blog-item .vc-autopic img {
  height:100% !important; min-height:100%; object-fit:cover; }

/* 文字欄自身留白決定卡片高度 */
.com-content-category-blog .blog-item > *:not(.item-image):not(.vc-autopic) {
  display:flex; flex-direction:column; justify-content:center; min-height:220px; }

/* ---------- 中文兩端對齊 ---------- */
.com-content-article__body p,
.vc-article__body p,
.com-content-category-blog .blog-item .vc-excerpt {
  text-align:justify; text-justify:inter-ideograph;
  /* 中文沒有連字符，關掉斷字避免英文單字被硬切 */
  hyphens:none; word-break:normal; overflow-wrap:break-word;
  /* 標點壓縮，行末不會出現大洞 */
  text-spacing-trim:space-first; }

/* 最後一行不強制拉開 */
.com-content-article__body p:last-child,
.vc-article__body p:last-child { text-align-last:start; }

@media (max-width:767px) {
  .com-content-category-blog .blog-item > *:not(.item-image):not(.vc-autopic) { min-height:0; }
  .com-content-category-blog .blog-item .item-image,
  .com-content-category-blog .blog-item .vc-autopic {
    height:auto !important; aspect-ratio:16 / 9 !important; min-height:0; }
  .com-content-category-blog .blog-item .item-image img,
  .com-content-category-blog .blog-item .vc-autopic img { height:auto !important; min-height:0; }
  /* 窄螢幕行長短，兩端對齊會出現大字距 —— 改回靠左 */
  .com-content-article__body p,
  .vc-article__body p,
  .com-content-category-blog .blog-item .vc-excerpt { text-align:left; }
}


/* ============================================================
   v1.99 牧者的分享 —— 自動填入的三張卡
   ============================================================ */
.vc-reading-auto { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.vc-reading-auto:empty { min-height:420px; }

.vc-reading-auto a.vc-card { text-decoration:none; color:inherit;
  transition:border-color .15s ease; }
.vc-reading-auto a.vc-card:hover { border-color:var(--vc-accent); text-decoration:none; }
.vc-reading-auto a.vc-card:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }
.vc-reading-auto .vc-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.vc-reading-auto .vc-card h3 { font-family:var(--vc-font-title); font-size:21px;
  line-height:1.5; color:var(--vc-ink); font-weight:700; margin:0; }
.vc-reading-auto a.vc-card:hover h3 { color:var(--vc-accent); }

@media (max-width:991px) { .vc-reading-auto { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767px) { .vc-reading-auto { grid-template-columns:1fr; } }


/* ============================================================
   v2.00 作者反向查詢
   ============================================================ */
.vc-author-link { color:var(--vc-accent) !important; text-decoration:none; }
.vc-author-link:hover { color:var(--vc-ink) !important;
  text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.vc-author-link:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

/* ---------- 作者頁 ---------- */
.vc-author-head { padding:0 0 28px; border-bottom:2px solid var(--vc-ink); margin-bottom:0; }
.vc-author-head .vc-eyebrow { margin:0 0 14px; }
.vc-author-name { font-family:var(--vc-font-title); font-size:clamp(30px,4.4vw,48px);
  line-height:1.2; font-weight:700; margin:0; color:var(--vc-ink); }
.vc-author-count { display:block; margin-top:14px; font-size:16px; color:var(--vc-muted); }

.vc-author-list { display:flex; flex-direction:column; }
.vc-author-list:empty { min-height:280px; }

.vc-author-item { display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr);
  gap:32px; align-items:stretch; padding:32px 0;
  border-bottom:1px solid var(--vc-line); text-decoration:none; color:inherit;
  transition:background .15s ease; }
.vc-author-item:hover { background:var(--vc-accent-soft); text-decoration:none; }
.vc-author-item:focus-visible { outline:2px solid var(--vc-accent); outline-offset:2px; }

.vc-author-item__pic { display:block; overflow:hidden; }
.vc-author-item__pic img { width:100%; height:100%; min-height:150px;
  object-fit:cover; display:block; }

.vc-author-item__body { display:flex; flex-direction:column; justify-content:center; gap:8px; }
.vc-author-item__body em { font-style:normal; font-size:12px; letter-spacing:.16em;
  color:var(--vc-accent); font-weight:700; }
.vc-author-item__body strong { font-family:var(--vc-font-title); font-size:24px;
  line-height:1.45; font-weight:700; color:var(--vc-ink); }
.vc-author-item:hover .vc-author-item__body strong { color:var(--vc-accent); }
.vc-author-item__ex { font-size:16.5px; line-height:1.8; color:var(--vc-ink-2);
  max-width:62ch; text-align:justify; text-justify:inter-ideograph; }
.vc-author-item__body time { font-size:14px; color:var(--vc-muted); margin-top:2px; }

.vc-author-empty { padding:56px 0; font-size:17px; color:var(--vc-muted); }

@media (max-width:767px) {
  .vc-author-item { grid-template-columns:1fr; gap:14px; padding:24px 0; }
  .vc-author-item__pic img { min-height:0; aspect-ratio:16 / 9; }
  .vc-author-item__body strong { font-size:20px; }
  .vc-author-item__ex { font-size:15.5px; text-align:left; }
}


/* ============================================================
   v2.5 Banner 輪播 —— 交叉淡入，圖片本身緩慢推移
   ============================================================ */
.vc-banner.vc-slides { position:relative; overflow:hidden; }

.vc-banner.vc-slides > img,
.vc-banner.vc-slides .vc-slide {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; margin:0;
  opacity:0; transition:opacity 1.6s ease-in-out;
  will-change:opacity; }

.vc-banner.vc-slides .vc-slide.is-on { opacity:1; }

/* 極慢的推移：五秒內幾乎察覺不到，但畫面不會死板 */
@keyframes vc-slide-drift {
  from { transform:scale(1.06) translate3d(0,0,0); }
  to   { transform:scale(1.13) translate3d(-1.2%, -0.8%, 0); }
}
.vc-banner.vc-slides .vc-slide.is-on { animation:vc-slide-drift 9s linear forwards; }

/* 疊在圖上的漸層與文字要在最上層 */
.vc-banner.vc-slides .vc-banner__overlay { position:absolute; inset:0; z-index:3; }

@media (prefers-reduced-motion: reduce) {
  .vc-banner.vc-slides .vc-slide { transition:opacity .4s linear; animation:none; }
}
