/* 2026 redesign: mobile-first, system fonts only, no outside assets. */
:root{color-scheme:light;--bg:#f7f8fa;--surface:#fff;--ink:#0b1220;--ink-2:#3b4556;--muted:#667085;--line:#e4e7ec;--line-2:#eef0f3;
--brand:#0a5cd6;--brand-ink:#0846a6;--brand-soft:#eaf2ff;--hero-a:#06204a;--hero-b:#0a3d8f;--accent:#ffb020;
--good:#067647;--good-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fffaeb;--bad:#b42318;--bad-soft:#fef3f2;
--r:16px;--r-sm:10px;--shadow:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);--shadow-lg:0 12px 32px -8px rgba(16,24,40,.16);
--max:1160px;--read:760px}
body[data-theme="ia"]{--brand:#047857;--brand-ink:#065f46;--brand-soft:#e7f8f0;--hero-a:#04251d;--hero-b:#065f46;--accent:#e7c27a}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Hiragino Sans CNS","Noto Sans TC","Noto Sans CJK TC","Microsoft JhengHei UI","Microsoft JhengHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-wrap:anywhere}
img,svg{max-width:100%}
a{color:var(--brand);text-decoration:none}
a:hover{color:var(--brand-ink);text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:50}
.skip:focus{left:8px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 20px}
/* Header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.88);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none!important}
.brand>span{display:flex;flex-direction:column;line-height:1.2}
.brand-name{font-weight:750;font-size:17px;letter-spacing:.01em}
.brand-domain{font-size:12px;color:var(--muted)}
.mark{width:34px;height:34px;flex:none}
.ai-pill{margin:0;font-size:12px;font-weight:600;color:var(--brand-ink);background:var(--brand-soft);border-radius:999px;padding:5px 12px;white-space:nowrap}
.ai-pill::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--good);margin-right:7px;vertical-align:1px}
.nav-scroll{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding-bottom:8px}
.nav-scroll::-webkit-scrollbar{display:none}
.nav-scroll a{flex:none;color:var(--ink-2);font-size:14px;font-weight:550;padding:7px 12px;border-radius:999px;text-decoration:none}
.nav-scroll a:hover{background:var(--line-2);color:var(--ink)}
.nav-scroll a[aria-current="page"]{background:var(--ink);color:#fff}
/* Trust strip */
.trust-strip{background:var(--surface);border-bottom:1px solid var(--line)}
.trust-strip .wrap{display:flex;gap:8px 18px;flex-wrap:wrap;padding-top:9px;padding-bottom:9px;font-size:12.5px;color:var(--ink-2)}
.tb{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tb::before{content:"";width:16px;height:16px;border-radius:50%;background:var(--brand-soft) center/10px no-repeat;flex:none}
.tb-ai::before{background-color:var(--good-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2 4.2 7.3 8 2.8' fill='none' stroke='%23067647' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.tb-src::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2.5 1.5h5v7l-2.5-1.6-2.5 1.6z' fill='%23667085'/%3E%3C/svg%3E")}
.tb-date::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Ccircle cx='5' cy='5' r='3.6' fill='none' stroke='%23667085' stroke-width='1.3'/%3E%3Cpath d='M5 3v2.2l1.4.9' fill='none' stroke='%23667085' stroke-width='1.2'/%3E%3C/svg%3E")}
.tb-disc{color:var(--ink-2)}
.tb-disc::before{background-color:var(--warn-soft);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 2v3.6M5 7.4v.4' stroke='%23b54708' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}
/* Hero */
.hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(1200px 500px at 85% -10%,rgba(255,255,255,.14),transparent 60%),linear-gradient(135deg,var(--hero-a),var(--hero-b));padding:44px 0 52px}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(to bottom,#000,transparent 85%);-webkit-mask-image:linear-gradient(to bottom,#000,transparent 85%);pointer-events:none}
.hero .wrap{position:relative;z-index:1}
.hero h1{font-size:clamp(30px,7.4vw,54px);line-height:1.15;letter-spacing:-.015em;margin:10px 0 16px;font-weight:800;color:#fff}
.hero .lede{font-size:clamp(16px,2.2vw,19px);color:rgba(255,255,255,.86);max-width:680px;margin:0 0 20px}
.kicker{display:inline-block;margin:0;font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--brand);text-transform:uppercase}
.hero .kicker{color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:4px 12px;letter-spacing:.03em}
.hero-warn{background:rgba(255,176,32,.14);border:1px solid rgba(255,196,90,.45);color:#fff3d6;border-radius:var(--r-sm);padding:12px 14px;max-width:680px;font-size:15px}
.trust{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:8px}
.trust li{margin:0!important;font-size:13.5px;font-weight:600;padding:6px 12px 6px 30px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);position:relative}
.trust li::before{content:"✓";position:absolute;left:11px;top:5px;color:#7ee2b8;font-weight:800}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:12px;border:0;font:inherit;font-weight:700;font-size:15.5px;cursor:pointer;background:var(--brand);color:#fff;text-decoration:none!important;box-shadow:0 1px 2px rgba(0,0,0,.08);transition:transform .15s,background .15s}
.btn:hover,button:hover{background:var(--brand-ink);color:#fff;transform:translateY(-1px)}
.hero .btn{background:#fff;color:var(--hero-a)}
.hero .btn:hover{background:#f0f4fa;color:var(--hero-a)}
.btn-ghost,.hero .btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45)}
.hero .btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}
.hero-grid{display:grid;gap:28px}
.path-card{background:rgba(255,255,255,.96);color:var(--ink);border-radius:20px;padding:22px;box-shadow:var(--shadow-lg)}
.path-card .kicker{color:var(--brand);background:none;border:0;padding:0}
.path{list-style:none;margin:14px 0;padding:0;position:relative}
.path::before{content:"";position:absolute;left:15px;top:16px;bottom:16px;width:2px;background:repeating-linear-gradient(var(--brand) 0 6px,transparent 6px 11px)}
.path li{position:relative;display:flex;align-items:baseline;gap:10px;padding:8px 0 8px 44px;margin:0!important}
.path li::after{content:"";position:absolute;left:8px;top:13px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--brand)}
.path li:first-child::after,.path li:last-child::after{background:var(--brand)}
.path b{font-size:17px}
.path small{color:var(--muted);font-size:13px}
.path-note{font-size:13.5px;color:var(--ink-2);background:var(--bg);border-radius:var(--r-sm);padding:10px 12px;margin:0}
/* Body */
.page-body{padding-top:8px;padding-bottom:40px}
.section{margin:36px 0}
h1{font-size:clamp(28px,6vw,42px);line-height:1.2;letter-spacing:-.01em;margin:0 0 18px;font-weight:800}
h2{font-size:clamp(21px,3.6vw,27px);line-height:1.3;letter-spacing:-.005em;margin:40px 0 14px;font-weight:750}
h3{font-size:18px;line-height:1.4;margin:22px 0 8px;font-weight:700}
h4{font-size:16px;margin:16px 0 6px}
p{margin:0 0 14px}
.lede{font-size:17px;color:var(--ink-2)}
.fine,small{font-size:13px;color:var(--muted)}
strong{font-weight:700}
.sheet{max-width:var(--read);margin:28px auto 48px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px 20px;box-shadow:var(--shadow)}
.sheet>h1:first-child{margin-top:0;padding-bottom:16px;border-bottom:1px solid var(--line)}
.sheet>h2:first-of-type{margin-top:26px}
main ul,main ol{padding-left:1.3em;margin:0 0 16px}
main li{padding-left:2px}
main li+li{margin-top:8px}
main li::marker{color:var(--brand);font-weight:700}
main a{font-weight:550}
/* Cards */
.cards{display:grid;gap:14px;grid-template-columns:1fr}
.cards a{display:block;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 20px 18px;color:var(--ink);text-decoration:none;box-shadow:var(--shadow);transition:border-color .15s,box-shadow .15s,transform .15s}
.cards a::after{content:"→";position:absolute;right:18px;top:18px;color:var(--muted);font-weight:700;transition:transform .15s}
.cards a:hover{border-color:var(--brand);box-shadow:var(--shadow-lg);transform:translateY(-2px);text-decoration:none}
.cards a:hover::after{color:var(--brand);transform:translateX(3px)}
.cards h3{margin:0 28px 6px 0;font-size:17.5px}
.cards p{margin:0 0 8px;color:var(--ink-2);font-size:14.5px}
.cards p:last-child{margin:0}
.cards .k{display:inline-block;margin-bottom:10px}
.risk-bank{border-top:4px solid #12b76a!important}
.risk-tw{border-top:4px solid #f5b400!important}
.risk-os{border-top:4px solid #f97316!important}
.risk-bank .k{color:var(--good);background:var(--good-soft)}
.risk-tw .k{color:#93370d;background:#fef7c3}
.risk-os .k{color:var(--warn);background:#fff4ed}
.k{font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--muted);margin:0 0 4px;border-radius:999px}
.cards .k{padding:3px 10px}
/* Fares */
.fares-block{margin:40px 0}
.fares{display:grid;gap:16px;grid-template-columns:1fr}
.fare{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}
.flag{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;background:var(--warn-soft);border-bottom:1px solid #fedf89;color:var(--warn);padding:10px 18px;font-size:13px}
.flag strong{background:var(--warn);color:#fff;border-radius:999px;padding:1px 10px;font-size:12px}
.fare-body{padding:18px 20px 20px}
.airline{margin:0;font-size:13px;font-weight:700;color:var(--brand);letter-spacing:.02em}
.fare h3{margin:4px 0 6px;font-size:20px}
.meta{margin:0 0 4px;font-size:13px;color:var(--muted)}
.cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 12px}
.cmp>div{background:var(--bg);border:1px solid var(--line-2);border-radius:14px;padding:12px 14px}
.cmp>div:first-child{background:var(--brand-soft);border-color:transparent}
.price{margin:0;font-size:clamp(24px,5vw,30px);font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.cmp>div:first-child .price{color:var(--brand-ink)}
.sub{font-size:13px;color:var(--ink-2)}
.save{display:inline-block;background:var(--good-soft);color:var(--good);font-weight:750;border-radius:999px;padding:5px 14px;font-size:14.5px}
.save-neg{background:var(--bad-soft);color:var(--bad)}
.save-zero{background:var(--line-2);color:var(--ink-2)}
.note{font-size:13.5px;color:var(--ink-2);background:var(--bg);border-radius:var(--r-sm);padding:10px 12px}
.lcc{margin-top:12px;border:1px dashed var(--line);border-radius:12px;padding:12px 14px}
.lcc h4{margin:0 0 4px;font-size:14px}
.lcc p{margin:0;font-size:13.5px}
.sources{list-style:none;padding:0!important;display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0!important}
.sources li{margin:0!important}
.sources a{display:inline-block;font-size:12.5px;border:1px solid var(--line);border-radius:999px;padding:3px 11px;background:var(--surface)}
.empty{background:var(--surface);border:1px dashed var(--line);border-radius:var(--r);padding:20px}
.empty-title{font-weight:700}
/* Routes, patterns */
.pattern{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:18px 0}
.pattern figcaption{font-weight:700;margin-bottom:6px}
.pattern-line{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;background:var(--bg);border-radius:8px;padding:8px 10px;overflow-x:auto}
.route-list{display:grid;gap:14px;grid-template-columns:1fr}
.route-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.route-card h3{margin:0 0 6px;font-size:17px}
.linkrow{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.linkrow a{display:inline-block;font-size:13.5px;border-radius:999px;padding:5px 12px;background:var(--brand-soft);color:var(--brand-ink)}
/* Callouts */
.warn,.ok{border-radius:14px;padding:14px 16px 14px 46px;position:relative;font-size:15px;margin:20px 0}
.warn{background:var(--warn-soft);border:1px solid #fedf89;color:#7a2e0e}
.warn::before{content:"!";position:absolute;left:14px;top:14px;width:22px;height:22px;border-radius:50%;background:var(--warn);color:#fff;font-weight:800;text-align:center;line-height:22px;font-size:13px}
.ok{background:var(--good-soft);border:1px solid #abefc6;color:#054f31}
.ok::before{content:"✓";position:absolute;left:14px;top:14px;width:22px;height:22px;border-radius:50%;background:var(--good);color:#fff;font-weight:800;text-align:center;line-height:22px;font-size:12px}
.tbd{display:inline-block;background:var(--warn-soft);color:var(--warn);border:1px solid #fedf89;border-radius:6px;padding:0 6px;font-size:.88em;font-weight:650;line-height:1.6}
.ref{font-size:13px;color:var(--muted)}
/* Tables: cards on phones, clean grid on desktop */
.tbl{margin:18px 0 24px}
.scroll-hint{display:none}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px}
table.stack tr:first-child{display:none}
table.stack tr{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:6px 16px;margin:0 0 12px;box-shadow:var(--shadow)}
table.stack td,table.stack tr>th{display:grid;grid-template-columns:7.5em 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);text-align:left;font-weight:400}
table.stack tr>:first-child{display:block;font-weight:750;font-size:16px;padding:12px 0 10px}
table.stack tr>:first-child::before{display:none}
table.stack tr>:last-child{border-bottom:0}
table.stack td::before,table.stack tr>th::before{content:attr(data-label);color:var(--muted);font-size:12.5px;font-weight:600;line-height:1.6}
table.stack tr.total{background:var(--brand-soft);border-color:transparent}
/* Forms */
form{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px 20px;box-shadow:var(--shadow);margin:16px 0 28px}
.field{display:block;font-weight:650;font-size:14px;margin:0 0 6px}
input[type="email"],input[type="number"],input[type="text"],input[type="date"],select{width:100%;min-height:48px;padding:10px 14px;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
.check{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:14.5px}
input[type="checkbox"],input[type="radio"]{width:20px;height:20px;accent-color:var(--brand);margin-top:3px;flex:none}
form button{width:100%;margin:4px 0 12px}
/* Search tool */
.tool{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px 18px;box-shadow:var(--shadow-lg);margin:-28px 0 36px;position:relative;z-index:2}
.tool-plain{margin-top:24px}
.tool h2{margin-top:0}
.tool form{border:0;box-shadow:none;padding:0;margin:0;background:none}
.choice{display:grid;gap:8px;margin:0 0 16px;border:0;padding:0}
.choice label{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;font-size:14.5px}
.choice label:has(input:checked){border-color:var(--brand);background:var(--brand-soft)}
.pair{display:grid;gap:12px;grid-template-columns:1fr;margin:0 0 12px}
.panel[hidden]{display:none}
.tool .btn{width:100%;margin-top:6px}
.plan,.match{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0;background:var(--bg)}
.plan h3,.fare-match h3,.plan h4,.match h4{margin:0 0 6px}
.plan-legs{margin:6px 0}
.round-title{font-weight:700}
.fare-match{border:1px solid #abefc6;background:var(--good-soft);border-radius:14px;padding:14px 16px;margin:12px 0}
/* Footer */
.site-footer{background:#0b1220;color:#c4cad6;padding:40px 0 28px;font-size:14px;margin-top:40px}
.site-footer p{margin:0 0 10px}
.site-footer a{color:#fff}
.foot-brand .brand{color:#fff;margin-bottom:16px}
.foot-brand .brand-domain{color:#98a2b3}
.foot-lead{color:#fff;font-size:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:14px 16px;margin-bottom:16px!important}
.foot-nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin:20px 0;padding:18px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.foot-nav a{color:#c4cad6;font-size:14px}
.site-footer .fine{color:#98a2b3}
/* Larger screens */
@media (min-width:720px){
 .wrap{padding:0 32px}
 .hero{padding:72px 0 88px}
 .cards{grid-template-columns:repeat(2,1fr)}
 .fares{grid-template-columns:repeat(2,1fr)}
 .route-list{grid-template-columns:repeat(2,1fr)}
 .pair{grid-template-columns:1fr 1fr}
 .sheet{padding:44px 52px;margin:44px auto 64px}
 .tool{padding:30px 32px;margin-top:-48px}
 .tool-plain{margin-top:32px}
 .choice{grid-template-columns:1fr 1fr}
 form button{width:auto}
 .tool .btn{width:auto}
}
@media (min-width:1000px){
 .hero-grid.has-aside{grid-template-columns:1.35fr 1fr;align-items:center;gap:56px}
 .cards{grid-template-columns:repeat(3,1fr)}
 .sheet{max-width:880px}
 .tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
 table.stack tr:first-child{display:table-row}
 table.stack tr{display:table-row;background:none;border:0;padding:0;margin:0;box-shadow:none;border-radius:0}
 table.stack td,table.stack tr>th,table.stack tr>:first-child{display:table-cell;padding:12px 14px;border-bottom:1px solid var(--line-2);vertical-align:top;font-size:14px}
 table.stack td::before,table.stack tr>th::before{display:none}
 table.stack tr:first-child th{background:var(--bg);color:var(--ink-2);font-size:12.5px;font-weight:700;letter-spacing:.02em;white-space:nowrap;position:sticky;top:0}
 table.stack tr:not(:first-child)>:first-child{font-weight:700;font-size:14px}
 table.stack tr:not(:first-child):hover{background:#fafbfc}
 table.stack tr>:last-child{border-bottom:1px solid var(--line-2)}
 table.stack tr:last-child>*{border-bottom:0}
 .sheet:has(.tbl){max-width:var(--max)}
 table.stack{min-width:900px}
 table.stack td,table.stack th{overflow-wrap:break-word}
 table.stack td a{white-space:nowrap}
 table.stack tr.total>*{background:var(--brand-soft)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.trust-strip,.site-footer .foot-nav,form{display:none}.hero{background:none;color:#000}}
/* 即時查價框（Travelpayouts 官方小工具）2026-10-23 */
.tp-box{border:1px solid var(--line,#e4e7ec);border-radius:12px;padding:12px 16px;margin:20px 0;background:#fff}
.tp-box h2{margin-top:4px}
.tp-slot{border:2px dashed #98a2b3;border-radius:10px;padding:14px;text-align:center;color:#475467;background:#f9fafb}
.tp-slot p{margin:4px 0}
