/* 第三屆亞太醫療品質年會 v3（中英文）：版型沿用 v2（依 Figma「亞太落地.fig」復刻），內容依 1022 中文稿、1103 英文稿
   zh/index.html 與 en/index.html 由 build.py 產生，共用這份樣式
   桌機稿 Frame 57（2560 寬，內容 1200 置中）；手機稿 Mobile V2（393 寬）
   兩套版面都輸出在 HTML，≤640px 顯示手機版 .v-m，其餘顯示桌機版 .v-d
   Figma 圖層模糊值 r 換成 CSS blur(r/2)；陰影值 1:1 */
:root {
  --ink: #12201F;
  --muted: #5D6B6A;
  --teal: #0DA899;
  --teal-ink: #00635F;
  --teal-m: #129B89;
  --line: rgba(18, 32, 31, .1);
  --card-shadow: 0 2px 12px rgba(174, 205, 187, .5);
  --mont: Montserrat, 'Noto Sans TC', sans-serif;
  --inter: Inter, 'Noto Sans TC', sans-serif;
  --archivo: Archivo, Montserrat, sans-serif;
}
html, body { margin: 0; background: #fff; }
body { overflow-x: hidden; color: var(--ink); font-family: var(--mont); -webkit-font-smoothing: antialiased; }
* { box-sizing: border-box; }
h1, h2, h3, p, ul, ol, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

@media (min-width: 641px) { .v-m { display: none !important; } }
@media (max-width: 640px) { .v-d { display: none !important; } }
/* 模糊色塊會超出畫面，裁掉避免出現橫向捲動 */
.v-d, .v-m { overflow-x: clip; }

.wrap { position: relative; width: min(1200px, 100% - 80px); margin-inline: auto; }
.label {
  font-family: var(--mont); font-size: 13px; font-weight: 600; line-height: 1.2;
  letter-spacing: .12em; text-transform: uppercase;
}
.h2 { font-size: 64px; line-height: 73.6px; font-weight: 700; letter-spacing: -.32px; }
.nw { display: inline-block; }
/* 模糊色塊：只負責氛圍，不影響版面 */
.blob { position: absolute; pointer-events: none; }

/* ================= 桌機 ================= */

/* Hero：底部 #F3F4F6 往上半高淡成白；左右兩團旋轉的品牌漸層橢圓＋地球線稿 */
.d-hero {
  position: relative; overflow: hidden; isolation: isolate;
  background: linear-gradient(to top, #F3F4F6 0%, #fff 50%);
}
.d-hero .ell-r {
  /* 貼著畫面右緣定位（2560 稿中心距右緣 269px），1440 也看得到；2560 時與稿相同 */
  left: calc(100% - 269px - 686.5px); top: calc(559px - 378px);
  width: 1373px; height: 756px; border-radius: 50%;
  background: linear-gradient(90deg, #7BFFA5, #77B0FF);
  /* Figma 圖層是 Exclusion，但瀏覽器在白底上會反成粉紅；Figma 實際顯示為薄荷綠，改用一般混合 */
  transform: rotate(133.5deg); opacity: .4; filter: blur(200px); z-index: 0;
}
.d-hero .globe {
  left: calc(50% + 162px); top: 69px; width: 1224px; height: 1224px;
  background: url('assets/earth-desktop.svg') center / contain no-repeat; z-index: 2;
}
.d-hero .ell-l {
  /* 貼著畫面左緣定位（2560 稿中心距左緣 27px） */
  left: calc(27px - 686.5px); top: calc(254px - 295.7px);
  width: 1373px; height: 591px; border-radius: 50%;
  background: linear-gradient(90deg, #7BFFA5, #77B0FF);
  transform: rotate(-63.2deg); opacity: .4; filter: blur(200px); z-index: 3;
}
.d-hero .wrap { z-index: 1; padding-block: 112px 104px; }
.d-hero .event { display: grid; gap: 12px; color: var(--teal-ink); }
.d-hero .event .t { font-size: 32px; line-height: 41.6px; font-weight: 700; }
.d-hero h1 { display: grid; gap: 12px; margin-top: 40px; }
.d-hero h1 .l1 { font-size: 96px; line-height: 103.68px; font-weight: 900; letter-spacing: -.96px; }
.d-hero h1 .l2 { font-size: 64px; line-height: 73.6px; font-weight: 700; }
.d-hero .en { margin-top: 40px; max-width: 720px; color: var(--muted); font-size: 20px; line-height: 34px; font-weight: 500; }
.d-hero .meta { margin-top: 40px; display: flex; align-items: center; gap: 40px; }
.d-hero .meta .date { display: flex; gap: 16px; font-family: var(--archivo); font-size: 32px; line-height: 38.4px; font-weight: 800; letter-spacing: -.32px; }
.d-hero .meta .sep { width: 1px; height: 32px; background: var(--line); }
.d-hero .meta .venue { font-size: 20px; line-height: 32px; font-weight: 500; }
.d-hero .cta-row { margin-top: 40px; }
.d-cta {
  display: inline-flex; align-items: center; gap: 10px; height: 64px; padding: 16px 36px;
  border-radius: 999px; background: var(--teal); color: #fff;
  font-size: 20px; line-height: 32px; font-weight: 700; letter-spacing: .8px;
  transition: transform .15s, filter .15s;
}
.d-cta i { font-size: 20px; }
.d-cta:hover { transform: translateY(-2px); filter: brightness(1.06); }

.d-org { background: #CBEFEB; border-block: 1px solid var(--line); }
.d-org .wrap { display: flex; gap: 48px; padding-block: 20px; }
.d-org dl { display: flex; align-items: baseline; gap: 13px; }
.d-org dt { color: var(--muted); }
.d-org dd { font-size: 16px; line-height: 25.6px; font-weight: 500; }

/* 引言＋三大亮點 */
.d-main { padding-top: 120px; }
.d-intro { position: relative; }
.d-intro .glow {
  left: calc(50% - 758px); top: 406px; width: 1517px; height: 112px; border-radius: 50%;
  background: linear-gradient(90deg, #A4C8AF, #77B0FF); opacity: .7; filter: blur(90px);
}
.d-intro .cols { display: grid; grid-template-columns: 560px 560px; gap: 80px; }
.d-intro .cols .label { color: var(--teal-ink); }
.d-intro .cols h2 { margin-top: 16px; }
.d-intro .body p { font-size: 20px; line-height: 34px; }
.d-intro .body p + p { margin-top: 20px; }
.d-intro .body b { color: var(--teal-ink); font-weight: 700; }
.d-points { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding-top: 60px; }
.d-point {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 15px;
  min-height: 280px; padding: 40px 20px; border-radius: 6px; background: #fff; box-shadow: var(--card-shadow);
  font-family: var(--inter); text-align: center;
}
.d-point i { font-size: 40px; color: #18AB47; }
.d-point h3 { font-size: 24px; line-height: 1.8; font-weight: 500; color: #000; }
.d-point p { font-size: 16px; line-height: 1.4; color: #757575; }
.d-point p.sm { font-size: 15px; line-height: 1.5; }

/* 講者 */
.d-speakers { display: grid; gap: 80px; padding-block: 80px; }
.d-speakers .head .label { color: var(--teal-ink); }
.d-speakers .head h2 { margin-top: 16px; }
.d-intl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 24px; margin-top: 56px; }
.d-intl article { display: grid; grid-template-columns: 274px 1fr; gap: 40px; height: 240px; }
.d-intl .pic { height: 260px; overflow: hidden; }
.d-intl .pic img { width: 100%; height: 100%; object-fit: cover; }
.d-intl .txt { align-self: end; padding-bottom: 30px; }
.d-intl .org { color: var(--teal-ink); font-size: 13px; line-height: 19.5px; font-weight: 600; letter-spacing: .52px; }
.d-intl hr { width: 40px; height: 2px; margin: 6px 0 8px; border: 0; background: var(--teal); }
.d-intl h3 { font-size: 20px; line-height: 26px; font-weight: 700; }
.d-intl .role { margin-top: 6px; color: var(--muted); font-size: 16px; line-height: 24px; }
.d-local { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 24px; margin-top: 40px; font-family: var(--inter); }
.d-local .pic { aspect-ratio: 1; border-radius: 10px; overflow: hidden; }
.d-local .pic img { width: 100%; height: 100%; object-fit: cover; }
.d-local .txt { margin-top: 27px; padding-inline: 4px; display: grid; gap: 7px; }
.d-local h3 { font-size: 21.78px; line-height: 1.2; font-weight: 700; letter-spacing: -.02em; color: #1E1E1E; }
.d-local .role { font-size: 14.52px; line-height: 1.4; color: #757575; }

/* 議程：白底卡片＋背後一大片模糊漸層 */
.d-agenda { padding: 40px 0 100px; }
.d-agenda .wrap { isolation: isolate; }
.d-agenda .glow {
  left: 41px; top: 400px; width: 1120px; height: 1682px; z-index: -1;
  background: linear-gradient(180deg, #A0C3AB, #5096CF); opacity: .4; filter: blur(87px);
}
.d-agenda h2 { font-family: var(--inter); font-size: 36px; line-height: 1.8; font-weight: 600; color: #000; text-align: center; }
.ag-list { display: grid; gap: 12px; margin-top: 56px; }
.ag-item {
  display: grid; grid-template-columns: 160px 1fr; gap: 32px;
  padding: 32px 40px; border-radius: 16px; background: #fff; border: 1px solid #DEE3E5;
}
.ag-item.is-break { background: #E3F9F2; border-color: transparent; padding-block: 22px; }
.ag-time .start { display: block; font-family: var(--archivo); font-size: 20px; line-height: 24px; font-weight: 800; letter-spacing: -.2px; }
.ag-time .end { display: block; margin-top: 2px; color: var(--muted); font-size: 16px; line-height: 25.6px; font-weight: 500; }
.ag-tag {
  display: inline-block; padding: 5px 12px; border-radius: 999px;
  border: 1px solid rgba(13, 168, 153, .5); color: var(--teal-ink);
}
.ag-title { margin-top: 11px; font-size: 20px; line-height: 30px; font-weight: 700; }
.ag-grp { margin-top: 20px; color: var(--muted); }
.ag-people { margin-top: 12px; }
.ag-title + .ag-people { margin-top: 12px; }
.ag-people.cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 40px; }
.ag-people li {
  position: relative; display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 12px;
  padding: 10px 0 10px 22px; border-top: 1px solid var(--line); font-size: 16px; line-height: 24px;
}
.ag-people li::before {
  content: ""; position: absolute; left: 2px; top: 19px;
  border: 5px solid transparent; border-left: 7px solid var(--teal); border-right: 0;
}
.ag-people b { font-weight: 700; }
.ag-people li > span { color: var(--muted); }
.ag-people em { flex-basis: 100%; font-style: normal; font-size: 13px; line-height: 19.5px; font-weight: 600; color: var(--teal-ink); }
/* 座談兩欄：名字長的職稱自動換到下一行 */
.ag-people.cols li.stack span { flex-basis: 100%; padding-top: 2px; }

/* 報名 */
.d-register {
  padding-block: 120px;
  background:
    radial-gradient(ellipse 50% 90% at 15% 100%, rgba(123, 255, 165, .55), rgba(123, 255, 165, 0) 70%),
    radial-gradient(ellipse 50% 90% at 90% 0%, rgba(119, 176, 255, .45), rgba(119, 176, 255, 0) 70%),
    #F3F9F7;
}
.d-register .wrap { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 64px; }
.d-register h2 { margin-top: 24px; }
.d-register .meta { margin-top: 24px; display: flex; align-items: baseline; gap: 40px; }
.d-register .meta .num { font-family: var(--archivo); font-size: 32px; line-height: 51.2px; font-weight: 800; letter-spacing: -.32px; }
.d-register .meta .venue { font-size: 20px; line-height: 34px; }

/* 桌機窄一點（641–1279）時欄寬改成流動 */
@media (max-width: 1279px) {
  .d-intro .cols { grid-template-columns: 1fr 1fr; gap: 48px; }
  .d-intl article { grid-template-columns: 200px 1fr; gap: 24px; }
}
@media (max-width: 960px) {
  .d-hero h1 .l1 { font-size: 72px; line-height: 1.1; }
  .d-hero h1 .l2 { font-size: 48px; line-height: 1.2; }
  .h2 { font-size: 48px; line-height: 1.2; }
  .d-points, .d-intl { grid-template-columns: 1fr; }
  /* 國內專家桌機版一律一排四位，窄時縮小間距與字級 */
  .d-local { gap: 32px 16px; }
  .d-local h3 { font-size: 18px; }
  .d-local .role { font-size: 13px; }
  .ag-people.cols { grid-template-columns: 1fr; }
  .d-register .wrap { grid-template-columns: 1fr; }
}

/* ================= 手機（Figma 393 寬） ================= */
.m-wrap { padding-inline: 16px; }
.m-hero { position: relative; height: 540px; overflow: hidden; font-family: var(--inter); text-align: center; }
.m-hero .ell {
  left: calc(50% - 240px); top: -89px; width: 480px; height: 180px; border-radius: 50%;
  background: linear-gradient(90deg, #7BFFA5, #77B0FF); filter: blur(100px);
}
.m-hero .dome { left: 0; right: 0; top: 340px; height: 200px; overflow: hidden; }
.m-hero .dome::before {
  content: ""; position: absolute; left: calc(50% - 240px); top: 0; width: 480px; height: 480px;
  background: url('assets/earth-mobile.svg') center / contain no-repeat;
}
.m-hero .inner { position: relative; padding: 103px 16px 0; display: grid; justify-items: center; }
.m-hero .sub { font-size: 22px; line-height: 1.2; color: #000; white-space: pre; }
.m-hero h1 { margin-top: 16px; font-size: 26px; line-height: 1.6; font-weight: 700; letter-spacing: -.25px; color: #0C0C0D; }
.m-hero .en { margin-top: 16px; font-size: 18px; line-height: 1.2; font-weight: 500; color: #000; }
.m-hero hr { width: 160px; margin: 24px 0 0; border: 0; border-top: 1px solid #10A899; }
.m-info { display: grid; gap: 10px; font-family: 'Noto Sans TC', sans-serif; font-size: 16px; line-height: 1.2; color: #000; text-align: center; }
.m-hero .m-info { margin-top: 24px; }
.m-btn {
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 8px; background: var(--teal-m); color: #F5F5F5;
  font-family: var(--inter); font-size: 20px; line-height: 1; font-weight: 500; letter-spacing: .1em;
}
.m-hero .m-btn { margin-top: 40px; padding: 16px 30px; }

.m-org { padding: 16px 16px; min-height: 80px; background: rgba(191, 235, 231, .8); align-content: center; }

.m-intro { position: relative; padding: 60px 16px 40px; font-family: var(--inter); }
.m-intro .glow {
  left: 305px; top: 464px; width: 755px; height: 220px; border-radius: 50%;
  background: linear-gradient(90deg, #7BFFA5, #77B0FF); opacity: .7; filter: blur(80px);
}
.m-intro h2 { font-size: 24px; line-height: 1.6; font-weight: 600; color: #000; }
.m-intro .body { margin-top: 16px; font-size: 16px; line-height: 1.8; color: #000; }
.m-intro .body b { font-weight: 500; }
/* Figma 兩段之間是一個空行 */
.m-intro .body p + p { margin-top: 1.8em; }
.m-points { position: relative; display: grid; gap: 20px; margin-top: 60px; }
.m-point {
  display: flex; flex-direction: column; align-items: center; gap: 15px;
  padding: 30px 20px 40px; border-radius: 6px; background: #fff; box-shadow: var(--card-shadow); text-align: center;
}
.m-point i { font-size: 40px; color: var(--teal-m); }
.m-point h3 { font-size: 24px; line-height: 1.8; font-weight: 500; color: #000; }
.m-point p { font-size: 16px; line-height: 1.4; color: #757575; }
.m-point p.sm { font-size: 15px; line-height: 1.5; }

.m-speakers { padding: 40px 16px; font-family: var(--inter); }
.m-speakers h2 { font-size: 26px; line-height: 1.6; font-weight: 600; letter-spacing: -.02em; color: #1E1E1E; text-align: center; }
.m-sp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 16px; margin-top: 30px; }
.m-sp-grid .pic { aspect-ratio: 1; border-radius: 10px; overflow: hidden; }
.m-sp-grid .pic img { width: 100%; height: 100%; object-fit: cover; }
.m-sp-grid .txt { padding-inline: 4px; display: grid; }
.m-sp-grid.intl .txt { margin-top: 20px; gap: 8px; }
.m-sp-grid.intl h3 { font-size: 18px; line-height: 1.2; font-weight: 600; color: #1E1E1E; }
.m-sp-grid.intl .role { font-size: 14px; line-height: 1.4; color: #757575; }
.m-sp-grid.local .txt { margin-top: 27px; gap: 7px; }
.m-sp-grid.local h3 { font-size: 21.78px; line-height: 1.2; font-weight: 700; letter-spacing: -.02em; color: #1E1E1E; }
.m-sp-grid.local .role { font-size: 14.52px; line-height: 1.4; color: #757575; }

.m-agenda {
  padding: 40px 16px; font-family: var(--inter);
  background: linear-gradient(180deg, #fff 0%, #D3ECE9 40%, #D3ECE9 80%, #fff 100%);
}
.m-agenda h2 { font-size: 26px; line-height: 1.6; font-weight: 600; color: #000; text-align: center; }
.m-ag-list { display: grid; gap: 10px; margin-top: 20px; }
.m-ag {
  display: grid; gap: 10px; padding: 24px 16px; border-radius: 10px; background: #fff; box-shadow: var(--card-shadow);
}
.m-ag .time { font-family: 'Plus Jakarta Sans', var(--inter); font-size: 18px; line-height: 1.4; font-weight: 500; color: var(--teal-m); }
.m-ag h3 { font-size: 20px; line-height: 1.4; font-weight: 500; color: #000; }
.m-ag .people { display: grid; gap: 6px; font-size: 14px; line-height: 1.4; color: #000; }
.m-ag .row { display: grid; grid-template-columns: 56px 1fr; gap: 10px; }
/* 「與談貴賓：」五個字，整張卡的標籤欄一起放寬 */
.m-ag.wide .row { grid-template-columns: 70px 1fr; }
.m-ag .row .k { white-space: nowrap; }
.m-ag .row .k.sp { letter-spacing: .03em; }
.m-ag .row .v { white-space: pre-line; }
.m-ag .row.loose { line-height: 1.6; }

.m-register { position: relative; padding: 0 16px 60px; font-family: var(--inter); }
.m-register .bg {
  left: 0; right: 0; bottom: 0; height: 180px; opacity: .4;
  background: linear-gradient(180deg, #fff 0%, #6EB4E3 46%, #61D6C6 100%);
}
.m-register .card {
  position: relative; display: grid; justify-items: center; gap: 30px;
  padding: 40px 30px 48px; border-radius: 10px; background: #fff; box-shadow: var(--card-shadow); text-align: center;
}
.m-register h2 { font-size: 26px; line-height: 1.6; font-weight: 700; letter-spacing: -.25px; color: #0C0C0D; }
.m-register .m-info { margin-top: 20px; }
.m-register .m-btn { padding: 18px 36px; }

/* ================= v3 新增 ================= */

/* 講者照片還沒到：灰底框＋人像圖示佔位 */
.pic.is-empty { display: grid; place-items: center; background: #E6ECEB; border-radius: 10px; }
.pic.is-empty i { font-size: 72px; color: #B4C1BF; }
.m-sp-grid .pic.is-empty i { font-size: 56px; }

/* 議程標題下的「講者邀請中」 */
.d-agenda .note { margin-top: 4px; text-align: center; color: var(--muted); font-size: 16px; line-height: 1.6; }
.m-agenda .note { text-align: center; color: var(--muted); font-size: 14px; line-height: 1.6; }

/* ---------- 英文版 ---------- */
.lang-en .d-hero .event .t { font-size: 32px; }
.lang-en .d-hero h1 .l1 { font-size: 80px; line-height: 1.05; letter-spacing: -.02em; max-width: 1000px; text-wrap: balance; }
.lang-en .d-intro .body p { font-size: 20px; line-height: 32px; }
.lang-en .d-point h3 { line-height: 1.4; }
.lang-en .d-intl .role { line-height: 22px; }
.lang-en .d-local h3 { letter-spacing: -.01em; }
.lang-en .d-register .meta { flex-wrap: wrap; row-gap: 4px; }
/* 英文標籤字較長，手機版改成標籤在上、內容在下 */
.lang-en .m-ag .row, .lang-en .m-ag.wide .row { grid-template-columns: 1fr; gap: 2px; }
.lang-en .m-ag .row + .row { margin-top: 6px; }
.lang-en .m-ag .row .k { font-weight: 600; }
.lang-en .m-hero .sub { white-space: normal; font-size: 20px; }
@media (max-width: 960px) {
  .lang-en .d-hero h1 .l1 { font-size: 60px; }
}

/* ---------- Hero 高度（v3）：參考國際商機交流會頁上限 560，1440 寬第一屏露出下一段 ---------- */
.d-hero .wrap { padding-block: 72px 64px; }
.d-hero h1 { margin-top: 28px; }
.d-hero .en { margin-top: 20px; }
.d-hero .meta-row { margin-top: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 20px 48px; }
.d-hero .meta-row .meta { margin-top: 0; }
.lang-en .d-hero h1 .l1 { font-size: 64px; line-height: 1.1; }
.lang-en .d-hero .event .t { font-size: 28px; line-height: 1.3; }
@media (max-width: 960px) {
  .lang-en .d-hero h1 .l1 { font-size: 48px; }
}
/* 手機：取消固定 540 高，頂部留白縮小，地球改貼底 */
.m-hero { height: auto; padding-bottom: 48px; }
.m-hero .inner { padding-top: 64px; }
.m-hero .dome { top: auto; bottom: 0; height: 180px; }
.m-hero .m-btn { margin-top: 28px; }

/* ---------- 講者照片改用 1103 新照片格式（840×960 直式，底框內建） ---------- */
.d-intl article { height: auto; align-items: end; }
.d-intl .pic { height: auto; aspect-ratio: 7 / 8; }
.d-local .pic, .m-sp-grid .pic { aspect-ratio: 7 / 8; }
.pic.is-new { border-radius: 0; background: none; overflow: visible; }
.pic.is-new img { object-fit: contain; object-position: bottom; }
/* 佔位與舊照片也套同一比例，佔位底色改成新照片的淡藍灰 */
.pic.is-empty { background: #E1E7EF; border-radius: 16px; }
.pic.is-empty i { color: #AEB9C9; }

/* ---------- 英文版字體：內文用 Inter，大標題維持 Montserrat，日期時間數字維持 Archivo ---------- */
.lang-en { --mont: Inter, 'Noto Sans TC', sans-serif; }
.lang-en .h2,
.lang-en .d-hero h1,
.lang-en .d-hero .event .t { font-family: Montserrat, 'Noto Sans TC', sans-serif; }
.lang-en .m-info { font-family: Inter, sans-serif; }

/* ---------- Hero 背景隨寬度變化（依 Figma「[SNQ 年會] 亞太醫療品質年會」Desktop1440 / Desktop2560 兩張稿換算） ----------
   兩張稿之間用線性內插：位置 = a% + b px，1440 與 2560 時剛好落在稿上的位置
   右光暈中心 1403 → 2291、左光暈中心 −241 → 27（大小、旋轉、高度不變）
   地球左緣固定在畫面中心 +162，尺寸 860 → 1224；1440 稿的地球線條較深 */
.d-hero .ell-r { left: calc(79.29% + 261px - 686.5px); }
.d-hero .ell-l { left: calc(23.93% - 586px - 686.5px); }
.d-hero .globe {
  left: calc(50% + 162px); top: 69px;
  width: calc(32.5% + 392px); height: auto; aspect-ratio: 1;
  background-image: url('assets/earth-desktop-1440.svg');
}
@media (min-width: 2000px) {
  .d-hero .globe { background-image: url('assets/earth-desktop.svg'); }
}
/* 引言後方的光帶：1479 → 1517 寬 */
.d-intro .glow { width: calc(3.39% + 1430px); left: 50%; transform: translateX(-50%); }

/* ---------- 官網 header / footer 在 1366 以下會撐出橫向捲動（官網原本固定 1366 寬），本頁改成跟著畫面縮 ---------- */
/* page.css 比 site-chrome.css 先載入，加上 body 提高權重才蓋得過 */
@media (max-width: 1365px) {
  body .ths-chrome .header_NEW, body .ths-chrome .headerTopLine_NEW { min-width: 0; }
  body .ths-chrome .headerTopLine_TEXT { width: auto; max-width: 1226px; }
  body .ths-chrome .main { width: auto; max-width: 1366px; }
  body .ths-chrome .footer_main { width: auto; max-width: 1246px; }
}

/* ================= 醫藥韌性論壇（forum）新增：兩天議程、會場、議題清單 ================= */
.forum .ag-day + .ag-day { margin-top: 64px; }
.forum .ag-day-h {
  display: flex; align-items: baseline; gap: 16px; margin-top: 40px;
  padding-bottom: 14px; border-bottom: 2px solid var(--teal);
  font-size: 20px; line-height: 1.4; font-weight: 700; color: var(--ink);
}
.forum .ag-day-h .num { font-family: var(--archivo); font-size: 32px; font-weight: 800; color: var(--teal-ink); letter-spacing: -.01em; }
.forum .ag-list { margin-top: 24px; }
/* 議程時間：開始 / 短直線 / 結束，上下排列、置中對齊 */
.forum .ag-time .range { display: grid; justify-items: center; row-gap: 6px; width: max-content; }
.forum .ag-time .start,
.forum .ag-time .end { margin: 0; color: var(--ink); font-family: var(--archivo); font-size: 20px; line-height: 24px; font-weight: 800; letter-spacing: -.2px; }
.forum .ag-time .bar { width: 1.5px; height: 14px; background: #8A9696; }
.forum .ag-time .loc {
  display: inline-block; margin-top: 14px; padding: 3px 10px; border-radius: 999px;
  background: #F3F9F7; color: var(--teal-ink); font-size: 13px; line-height: 1.5; font-weight: 600;
}
.forum .ag-desc { margin-top: 10px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.forum .ag-topic-h { margin-top: 18px; color: var(--teal-ink); font-size: 15px; font-weight: 700; }
.forum .ag-topics { margin-top: 10px; padding-left: 1.4em; list-style: decimal; color: var(--ink); font-size: 16px; line-height: 1.7; }
.forum .ag-topics li + li { margin-top: 4px; }
.forum .ag-topics li::marker { color: var(--teal); font-weight: 700; }
.forum .ag-people li > span:empty { display: none; }
/* 講者區兩組都用四欄卡片 */
.forum .d-speakers .d-local { margin-top: 40px; }

/* 手機議程 */
.forum .m-day-h { display: flex; align-items: baseline; gap: 10px; margin: 28px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--teal);
  font-family: var(--inter); font-size: 16px; font-weight: 700; color: #000; }
.forum .m-day-h .num { font-family: var(--archivo); font-size: 22px; font-weight: 800; color: var(--teal-ink); }
.forum .m-ag .loc { margin-top: -6px; color: var(--teal-ink); font-size: 13px; font-weight: 600; }
.forum .m-ag .desc { font-size: 14px; line-height: 1.6; color: #555; }
.forum .m-ag .ag-topic-h { margin-top: 2px; font-size: 13px; }
.forum .m-ag .ag-topics { margin-top: 4px; font-size: 14px; line-height: 1.6; color: #333; }
.forum .m-ag .row { grid-template-columns: 1fr; gap: 2px; }
.forum .m-ag .row + .row { margin-top: 6px; }
.forum .m-ag .row .k { color: var(--teal-ink); font-weight: 700; font-size: 13px; }
.forum .m-ag .row .k:empty { display: none; }
.forum .m-ag .row .v { white-space: normal; }
.forum .m-agenda .note { margin-top: 4px; }
/* 手機 hero：英文小標改成標籤樣式，可換行 */
.forum .m-hero .sub { white-space: normal; font-family: var(--mont); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-ink); }
.forum .m-hero h1 { margin-top: 12px; }
.forum .m-hero .en { font-size: 16px; line-height: 1.5; color: #333; }

/* ---------- 論壇 hero：主視覺（藥瓶＋膠囊）＋淡藍綠背景 ----------
   完整合成圖整張當背景，高度跟 hero 一樣、寬度依比例；
   主體物中心在圖寬 73.4% 處，固定對齊畫面中心 +330px（1200 版心的右半邊）
   畫面比圖還寬時，左右兩端淡出到與圖邊緣相同的底色 */
.forum .d-hero {
  background:
    linear-gradient(to bottom, #D5E6FB, #C3DBF7 50%, #DEEBFB) right / 50% 100% no-repeat,
    #F6F9FE;
}
.forum .d-hero .stage {
  position: absolute; top: 0; bottom: 0; left: calc(50% + 330px); z-index: 0;
  transform: translateX(-73.4%);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 94%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 94%, transparent);
}
.forum .d-hero .stage img { display: block; height: 100%; width: auto; max-width: none; }
.forum .d-hero .wrap { min-height: 580px; display: flex; flex-direction: column; justify-content: center; padding-block: 64px; }
.forum .d-hero .label { color: #1C6E8C; }
.forum .d-hero h1 { margin-top: 20px; gap: 4px; color: #0B1F33; }
.forum .d-hero h1 .l1,
.forum .d-hero h1 .l2 { font-size: 64px; line-height: 1.2; font-weight: 500; letter-spacing: -.01em; }
.forum .d-hero .en { margin-top: 20px; max-width: 560px; color: #4A5B6E; }
.forum .d-hero .meta-row { margin-top: 40px; max-width: 620px; }
.forum .d-hero .meta .date { font-size: 28px; }

/* 手機 hero：上方薄荷綠到淡藍的漸層往下淡成白，文字在上；藥瓶膠囊在下方、被下一區切掉一點，報名按鈕壓在藥瓶上 */
.forum .m-hero {
  padding-bottom: 0;
  background:
    linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 340px),
    linear-gradient(110deg, #B9F2D5 0%, #BFE9EE 45%, #C5DEF8 100%);
}
.forum .m-hero .inner { padding-top: 48px; }
.forum .m-hero .sub { font-family: var(--inter); font-size: 17px; line-height: 1.3; font-weight: 600; letter-spacing: 0; text-transform: none; color: #0C0C0D; }
.forum .m-hero h1 { margin-top: 12px; font-size: 32px; line-height: 1.3; font-weight: 700; color: #0B5A4C; }
.forum .m-hero .en { margin-top: 16px; font-size: 17px; line-height: 1.5; font-weight: 500; color: #0C0C0D; }
.forum .m-hero hr { margin-top: 20px; }
.forum .m-hero .m-info { margin-top: 20px; gap: 8px; }
.forum .m-hero .m-info p:first-child { font-family: var(--inter); font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.forum .m-hero .m-info p + p { font-size: 15px; }
.forum .m-hero .visual { position: relative; margin: 8px -6% -7%; }
.forum .m-hero .obj { display: block; width: 100%; height: auto; }
.forum .m-hero .visual .m-btn { position: absolute; left: 50%; top: 34%; transform: translateX(-50%); margin: 0; padding: 16px 40px; box-shadow: 0 8px 24px rgba(11, 90, 76, .18); }

/* 會場文字變長：日期、會場都不換行，間距收窄；手機主辦單位一行放得下 */
.forum .d-hero .meta-row { max-width: 640px; }
.forum .d-hero .meta { gap: 24px; white-space: nowrap; }
.forum .d-hero .meta .venue { font-size: 18px; }
.forum .m-org p { font-size: 15px; }

/* ================= 網頁文案（中英）docx 套版：hero 三個關鍵字、三大亮點、頁尾報名 ================= */
/* hero：主題句下方的三個關鍵字，用細點分隔 */
.forum .d-hero .tags { display: flex; flex-wrap: wrap; gap: 4px 0; margin-top: 16px; max-width: 600px; color: #1C6E8C; font-size: 16px; line-height: 1.5; font-weight: 600; }
.forum .d-hero .tags li + li::before { content: "·"; margin-inline: 12px; color: #8FB3C8; }
.forum .d-hero .en { font-size: 20px; line-height: 1.6; color: #2E4257; font-weight: 500; }
.forum .d-hero .venue small { display: block; margin-top: 2px; font-size: 13px; line-height: 1.3; color: var(--muted); font-weight: 500; }
.forum .d-hero .meta-row { margin-top: 32px; }

/* 三大亮點：三張淡藍卡片，左上大號序號 */
.forum .d-hl { padding-top: 96px; }
.forum .d-hl .head .label { color: var(--teal-ink); }
.forum .d-hl .head .label + h2 { margin-top: 16px; }
.forum .hl-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.forum .hl {
  display: flex; flex-direction: column; gap: 16px; padding: 36px 32px 40px;
  border-radius: 20px; background: linear-gradient(160deg, #EEF6FD 0%, #F4FBF8 100%); border: 1px solid #DCE9F4;
}
.forum .hl .num { font-family: var(--archivo); font-size: 32px; line-height: 1; font-weight: 800; color: #1C6E8C; letter-spacing: -.01em; }
.forum .hl h3 { font-size: 20px; line-height: 1.5; font-weight: 700; color: var(--ink); }
.forum .hl ul { display: grid; gap: 10px; padding-top: 16px; border-top: 1px solid #D3E3EF; }
.forum .hl li { font-size: 16px; line-height: 1.6; color: #3E5164; }
.forum .d-speakers { padding-top: 96px; }

/* 頁尾報名：與 hero 同一套淡藍綠背景，限在區塊內不外溢 */
.forum .d-register { margin-top: 40px; background: #F3F8FD url('assets/hero/hero-bg.webp?v=e0796960') center / cover no-repeat; }
.forum .d-register .label { color: #1C6E8C; }
.forum .d-register h2 { margin-top: 16px; font-size: 48px; line-height: 1.3; }
.forum .d-register .reg-meta { margin-top: 20px; font-size: 20px; line-height: 1.6; font-weight: 500; color: #2E4257; }

/* 手機：三大亮點、頁尾報名 */
.forum .m-intro h2 { color: #0B1F33; }
.forum .m-hero .tags { display: flex; flex-wrap: wrap; justify-content: center; margin-top: 12px; color: #1C6E8C; font-size: 14px; line-height: 1.6; font-weight: 600; }
.forum .m-hero .tags li + li::before { content: "·"; margin-inline: 8px; color: #8FB3C8; }
.forum .m-hero .en { font-size: 16px; line-height: 1.6; }
.forum .m-hl { padding: 20px 16px 20px; font-family: var(--inter); }
.forum .m-hl h2 { font-size: 26px; line-height: 1.6; font-weight: 600; letter-spacing: -.02em; color: #1E1E1E; text-align: center; }
.forum .m-hl .hl-list { grid-template-columns: 1fr; gap: 12px; margin-top: 24px; }
.forum .m-hl .hl { gap: 12px; padding: 24px 20px 26px; border-radius: 14px; }
.forum .m-hl .hl .num { font-size: 24px; }
.forum .m-hl .hl h3 { font-size: 17px; }
.forum .m-hl .hl ul { gap: 6px; padding-top: 12px; }
.forum .m-hl .hl li { font-size: 14px; line-height: 1.6; }
.forum .m-register { padding: 20px 16px 60px; }
.forum .m-register .card { gap: 16px; padding: 36px 24px 40px; background: #F3F8FD url('assets/hero/hero-bg.webp?v=e0796960') center / cover no-repeat; box-shadow: none; border-radius: 16px; }
.forum .m-register h2 { font-size: 22px; line-height: 1.5; }
.forum .m-register .reg-meta { font-size: 15px; line-height: 1.6; color: #2E4257; }
.forum .m-register .m-btn { margin-top: 8px; }

/* 英文版：標題較長，字級收小；講者區沒有小標 */
.forum.lang-en .d-hero h1 .l1,
.forum.lang-en .d-hero h1 .l2 { font-size: 56px; line-height: 1.12; font-weight: 600; letter-spacing: -.02em; }
.forum.lang-en .d-hero .en { max-width: 600px; }
.forum.lang-en .d-hero .event .label { letter-spacing: .08em; }
.forum.lang-en .d-intro .cols h2 { font-size: 48px; line-height: 1.2; }
.forum.lang-en .d-hl .head h2,
.forum.lang-en .d-speakers .head h2 { margin-top: 0; }
.forum.lang-en .d-register h2 { font-size: 48px; line-height: 1.2; max-width: 820px; }
.forum.lang-en .hl h3 { font-family: Montserrat, sans-serif; line-height: 1.4; }
.forum.lang-en .m-hero .sub { font-size: 14px; letter-spacing: .02em; }
.forum.lang-en .m-hero h1 { font-family: Montserrat, sans-serif; font-size: 30px; line-height: 1.25; }
.forum.lang-en .d-hero .tags { max-width: 660px; font-size: 15px; }
.forum.lang-en .d-hero .tags li + li::before { margin-inline: 10px; }
/* 手機修正：按鈕不換行；單位、報名資訊換行時平均分行；關鍵字改成小膠囊，換行時不會留下分隔點 */
.forum .m-btn { white-space: nowrap; }
.forum .m-org p, .forum .m-register .reg-meta, .forum .m-hero .en { text-wrap: balance; }
.forum .m-hero .tags { gap: 6px; }
.forum .m-hero .tags li { padding: 2px 10px; border-radius: 999px; border: 1px solid rgba(28, 110, 140, .25); background: rgba(255, 255, 255, .6); font-size: 13px; }
.forum .m-hero .tags li + li::before { content: none; }

/* 議程講題（專題演講底下的分題）*/
.forum .ag-subs { margin-top: 10px; display: grid; row-gap: 6px; color: var(--muted); font-size: 16px; line-height: 1.6; }
.forum .ag-subs em { display: inline-block; margin-right: 8px; padding: 1px 8px; border-radius: 999px; background: #E3F9F2; color: var(--teal-ink); font-style: normal; font-size: 13px; font-weight: 700; line-height: 20px; vertical-align: 1px; }
.forum .m-ag .ag-subs { margin-top: 6px; row-gap: 4px; font-size: 14px; line-height: 1.55; }
.forum .m-ag .ag-subs em { font-size: 12px; line-height: 18px; }

/* 11/12：議程時間欄與內容之間的空白跟亞太、SNQ 統一（時間欄 160 → 90） */
.forum .ag-item { grid-template-columns: 90px 1fr; }
.forum .ag-time .loc { white-space: nowrap; }
