/* 行前票夾 樣式｜文章裡的區塊才載入（convert-v1 第 3 週，由 style.css 依頁型拆出）：一句結論、比較表（layout: compare）、比價區塊、回本試算器、行程時間軸。
   文章有 verdict、compare、calc 或 itinerary 其中之一才載入；token 在 style.css 的 :root，載入順序固定在 style.css 之後。 */
.compare-title, .calc-title { margin: 0 0 10px; font-family: var(--serif); font-weight: 700; font-size: var(--fs-md); color: var(--ai); }
.compare-scroll { position: relative; overflow-x: auto; }
.compare .compare-table { display: table; width: 100%; margin: 0; border: 0; border-radius: 0; font-size: var(--fs-sm); line-height: 1.55; border-collapse: collapse; background: transparent; font-variant-numeric: tabular-nums; }
.compare .compare-table th, .compare .compare-table td { padding: 8px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); background: transparent; }
.compare .compare-table thead th { background: var(--th-bg); color: var(--th-fg); white-space: nowrap; }
.compare .compare-table tbody tr:last-child th, .compare .compare-table tbody tr:last-child td { border-bottom: 0; }
.compare .compare-table td:first-child { width: auto; font-weight: 400; }
.compare .compare-table tbody tr:nth-child(even) td { background: transparent; }
.compare .cmp-name { font-weight: 700; min-width: 9em; }
.cmp-price, .cmp-date, .cmp-note, .src-grade, .official-link { display: block; }
.cmp-price { font-weight: 700; }
.cmp-date, .cmp-note { color: var(--muted); font-size: var(--fs-xs); font-weight: 400; }
.src-grade { display: inline-block; margin-top: 2px; padding: 0 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: var(--fs-xs); }
.official-link { margin-top: 2px; font-size: var(--fs-sm); }
.cmp-go { white-space: nowrap; vertical-align: middle; }
@media (max-width: 560px) {
.compare .compare-table, .compare .compare-table tbody, .compare .compare-table tr { display: block; width: 100%; }
.compare .compare-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.compare .compare-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.compare .compare-table th, .compare .compare-table td { display: block; padding: 0; border: 0; }
.compare .cmp-name { grid-column: 1 / -1; font-size: var(--fs-md); min-width: 0; }
.cmp-official::before { content: "官方價"; display: block; font-size: var(--fs-xs); color: var(--muted); }
.cmp-aff::before { content: "購買頁"; display: block; font-size: var(--fs-xs); color: var(--muted); }
.compare .cmp-go { grid-column: 1 / -1; white-space: normal; }
.compare .cmp-go .aff-btn { width: 100%; }
}
/* ---------- 比較頁 layout: compare（convert-v1 A1）：一句結論 → 比較表 → 主按鈕 ---------- */
.verdict { margin: 0 0 var(--sp-3); padding: 16px 18px 18px; background: var(--warm); border-left: 6px solid var(--shu); border-radius: var(--radius); }
.verdict-label { margin: 0 0 2px; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .12em; color: var(--shu); }
.verdict-text { margin: 0; font-family: var(--serif); font-weight: 700; font-size: var(--fs-lg); line-height: 1.55; color: var(--ink); }
.decision { margin: 0 0 var(--sp-2); padding: 16px 16px 12px; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--ai); border-radius: var(--radius); box-shadow: var(--shadow); }
.decision-title { margin: 0 0 10px; font-family: var(--serif); font-weight: 700; font-size: var(--fs-md); color: var(--ai); }
.decision .decision-table { display: table; width: 100%; margin: 0; border: 0; border-radius: 0; font-size: var(--fs-sm); line-height: 1.55; border-collapse: collapse; background: transparent; }
.decision .decision-table th, .decision .decision-table td { padding: 8px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); background: transparent; }
.decision .decision-table thead th { background: var(--th-bg); color: var(--th-fg); white-space: nowrap; }
.decision .decision-table tbody tr:last-child th, .decision .decision-table tbody tr:last-child td { border-bottom: 0; }
.decision .dec-name { font-weight: 700; min-width: 8em; }
.decision .dec-go { white-space: nowrap; vertical-align: middle; }
.primary-cta { margin: 0 0 var(--sp-4); text-align: center; }
.primary-btn::after { content: " \2197"; }
.primary-cta .booking-top-disc { margin-top: 8px; }
@media (max-width: 560px) {
.decision .decision-table, .decision .decision-table tbody, .decision .decision-table tr { display: block; width: 100%; }
.decision .decision-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.decision .decision-table tr { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.decision .decision-table th, .decision .decision-table td { display: block; padding: 0; border: 0; }
.decision .dec-name { grid-column: 1 / -1; font-size: var(--fs-md); min-width: 0; }
.decision .dec-price, .decision .dec-time { grid-column: 1 / -1; }
.decision .dec-fit { grid-column: 1 / -1; }
.decision td[data-label]::before { content: attr(data-label); display: block; font-size: var(--fs-xs); color: var(--muted); }
.decision .dec-go { grid-column: 1 / -1; white-space: normal; }
.decision .dec-go:empty { display: none; }
.decision .dec-go .aff-btn { width: 100%; }
}
.calc-items { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.calc-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.calc-item input { width: 6.5em; padding: 6px 8px; border: 1px solid var(--line); border-radius: 6px; font: inherit; font-variant-numeric: tabular-nums; background: var(--paper); color: var(--ink); }
.calc-total { margin: 0 0 8px; font-weight: 700; font-size: var(--fs-md); font-variant-numeric: tabular-nums; }
.calc-passes { list-style: none; padding: 0; margin: 0 0 8px; }
.calc-passes li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 0; padding: 8px 0; border-top: 1px solid var(--line); }
.calc-pass-name { font-weight: 700; flex: 1 1 8em; }
.calc-pass-price { margin-left: 8px; color: var(--muted); font-weight: 400; font-size: var(--fs-sm); }
.calc-pass-result { font-variant-numeric: tabular-nums; }
.itin-title { margin: 0 0 10px; font-family: var(--serif); font-weight: 700; font-size: var(--fs-md); color: var(--ai); }
.itin-day + .itin-day { margin-top: 18px; }
.itin-days[hidden], .itin-day[hidden] { display: none; }
.itin-day-head { margin: 0 0 4px; font-size: var(--fs-base); }
.itin-area { margin-left: 10px; color: var(--muted); font-weight: 400; font-size: var(--fs-sm); }
.itin-day-note { margin: 0 0 6px; color: var(--muted); font-size: var(--fs-sm); }
.itin-stops { list-style: none; margin: 8px 0 0; padding: 0 0 0 18px; border-left: 2px solid var(--line); }
.itin-stop { position: relative; margin: 0; padding: 0 0 14px 4px; }
.itin-stop::before { content: ""; position: absolute; left: -25px; top: 6px; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 2px solid var(--ai); }
.itin-stop[data-kind="交通"]::before { border-color: var(--muted); }
.itin-stop p { margin: 0; }
.itin-meta { display: flex; align-items: baseline; gap: 10px; }
.itin-time { font-family: var(--mono); font-weight: 700; font-variant-numeric: tabular-nums; }
.itin-kind { color: var(--muted); font-size: var(--fs-sm); }
.itin-stop .itin-name { font-weight: 700; margin-top: 2px; }
.itin-stop .itin-note { color: var(--muted); font-size: var(--fs-sm); line-height: 1.6; }
.itin-stop .itin-cost { font-size: var(--fs-sm); font-variant-numeric: tabular-nums; margin-top: 2px; }
.itin-stop .itin-links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 6px; font-size: var(--fs-sm); }
.itin-total { margin: 4px 0 0; padding-top: 8px; border-top: 1px solid var(--line); font-weight: 700; font-variant-numeric: tabular-nums; }
.itin-source { margin: 10px 0 0; color: var(--muted); font-size: var(--fs-sm); line-height: 1.6; }
.cmp-date .checked-age { display: block; margin-left: 0; }
