:root{--paper:#f8f6f0;--card:#fffefa;--green:#173e37;--ink:#263b35;--muted:#69756c;--gold:#ad8548;--line:#dedfd4;--soft:#eaf0e7; font-family:"Microsoft JhengHei","PingFang TC",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}.wrap{max-width:1120px;margin:auto;padding-inline:40px}.skip-link{position:absolute;left:20px;top:-70px;background:white;padding:16px;z-index:10}.skip-link:focus{top:10px}.masthead{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{font-family:serif;font-size:25px;font-weight:bold}.wordmark span{margin-left:16px;font-family:Arial,sans-serif;letter-spacing:2px;font-size:9px;font-weight:400;color:var(--muted)}nav{display:flex;gap:28px;font-size:12px}nav a:hover{color:var(--gold)}nav span{margin-left:6px}.hero{display:flex;align-items:center;justify-content:space-between;min-height:310px;padding:48px 0 42px;gap:24px}.eyebrow{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2.5px;color:var(--gold);font-weight:bold;margin:0 0 14px}h1{font-family:"Noto Serif TC","PMingLiU",serif;font-size:60px;letter-spacing:4px;margin:0 0 18px;font-weight:600;line-height:1.2}.title-dot{color:var(--gold)}.subtitle{font-size:15px;letter-spacing:1px;margin:0;color:var(--muted)}.trip-meta{display:flex;align-items:center;gap:15px;font-size:12px;margin-top:30px;font-variant-numeric:tabular-nums;color:var(--muted)}.meta-divider{width:1px;height:12px;background:#bfc8bb}.destination-art{width:310px;height:200px;position:relative;flex-shrink:0}.art-sun{position:absolute;right:62px;top:8px;width:98px;height:98px;background:#e7d7b8;border-radius:50%;opacity:.65}.destination-art svg{position:absolute;bottom:0;width:100%;stroke:var(--green);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.art-caption{position:absolute;top:18px;left:10px;writing-mode:vertical-rl;letter-spacing:4px;font-family:Arial,sans-serif;font-size:9px;color:var(--muted)}h2{font-size:25px;font-weight:600;letter-spacing:1px;margin:0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;gap:15px}.section-heading .eyebrow{margin-bottom:9px}.section-caption{font-size:11px;color:var(--muted);padding-bottom:3px}.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.share-card{background:var(--card);border:1px solid var(--line);padding:24px 25px 23px;border-radius:4px;display:flex;flex-direction:column;min-width:0}.featured{background:var(--green);color:#fffdf6;border-color:var(--green)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.card-index{font-family:Georgia,serif;font-size:21px;color:var(--gold)}.featured .card-index{color:#d6b77d}.pill{font-size:10px;border:1px solid #d8dfd1;border-radius:20px;padding:4px 10px;color:var(--muted)}.featured .pill{border-color:#537166;color:#e0e8db}h3{font-size:16px;font-weight:600;margin:0;line-height:1.5}.price{font-family:Arial,sans-serif;font-size:35px;letter-spacing:-.8px;font-weight:600;margin:16px 0 20px;white-space:nowrap;font-variant-numeric:tabular-nums}.price>span{font-size:12px;letter-spacing:0;font-weight:400}.price small{font-family:"Microsoft JhengHei",sans-serif;font-size:11px;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:3px}.featured .price small{color:#cad8cb}.card-note{font-size:11px;line-height:1.9;margin:0;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;flex:1}.featured .card-note{color:#cad8cb;border-color:#47685b}.allocation{padding:17px 0 0;display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:12px;color:var(--muted)}.allocation strong{color:var(--ink);font-family:Arial,sans-serif;font-size:14px;margin-left:12px;font-weight:500}.allocation small{font-size:10px}.upgrade{display:flex;align-items:center;gap:20px;background:var(--soft);border-radius:4px;margin:42px 0 60px;padding:25px 28px;border:1px solid #dce3d4}.upgrade-symbol{font-size:39px;color:var(--gold)}.upgrade .eyebrow{font-size:9px;margin-bottom:7px}.upgrade h2{font-size:17px;letter-spacing:.5px}.upgrade p:last-child{font-size:11px;line-height:1.9;color:#536454;margin:9px 0 0;max-width:630px}.upgrade-tag{white-space:nowrap;font-size:10px;color:#637357;border:1px solid #bdcbb2;padding:8px 10px;margin-left:auto}.expense-category{margin-bottom:26px}.category-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#efeee6;border-top:1px solid #d9d9cb}.category-heading h3{font-size:13px}.category-heading h3 span{font-family:Georgia,serif;color:var(--gold);margin-right:15px;font-size:14px;font-weight:400}.category-heading>span{font-family:Arial,sans-serif;font-size:14px}.category-heading small{font-family:"Microsoft JhengHei",sans-serif;font-size:10px;color:var(--muted)}.expense-row{display:grid;grid-template-columns:minmax(0,1fr) 145px 120px;gap:20px;align-items:center;padding:20px 16px;border-bottom:1px solid var(--line)}h4{font-size:13px;font-weight:500;margin:0 0 6px}.item-copy p{font-size:11px;line-height:1.7;color:var(--muted);margin:0}.item-meta{display:flex;flex-direction:column;gap:7px;font-size:10px;color:var(--muted)}.item-total{text-align:right;font-family:Arial,sans-serif;font-size:17px;font-variant-numeric:tabular-nums;margin:0;white-space:nowrap}.item-total span{font-size:9px;color:var(--muted);margin-right:5px}.grand-total{display:flex;justify-content:space-between;align-items:center;padding:8px 16px 0;margin-top:36px}.grand-total>div>span{font-size:16px}.grand-total small{display:block;font-size:10px;color:var(--muted);margin-top:8px}.grand-total p{font-size:32px;font-family:Arial,sans-serif;margin:0}.grand-total p span{font-size:12px;margin-right:8px}.footer{display:flex;justify-content:space-between;gap:20px;margin-top:60px;padding:26px 0 32px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.8}.footer-brand{font-family:serif;font-size:16px;color:var(--green)}.footer p{margin:5px 0 0}.footer-notes{text-align:right}section[id]{scroll-margin-top:24px}
@media(min-width:1500px){.wrap{max-width:1200px}.hero{min-height:330px}.destination-art{width:340px}}
@media(max-width:760px){.wrap{padding-inline:22px}.masthead{height:74px}.wordmark{font-size:22px}.wordmark span{display:none}nav{gap:20px;font-size:11px}.hero{min-height:265px;padding:36px 0;position:relative;overflow:hidden}.hero-copy{position:relative;z-index:1}h1{font-size:45px;letter-spacing:2px}.subtitle{font-size:12px}.trip-meta{gap:10px;font-size:10px;margin-top:24px}.destination-art{position:absolute;right:-60px;top:18px;width:230px;opacity:.13}.hero .eyebrow{font-size:9px}h2{font-size:22px}.section-heading{display:block;margin-bottom:20px}.section-caption{display:block;margin-top:10px}.share-grid{grid-template-columns:1fr;gap:12px}.share-card{padding:22px;display:grid;grid-template-columns:1fr auto;column-gap:10px}.card-top{grid-column:1/-1;margin-bottom:15px}.card-index{font-size:18px}.share-card h3{font-size:14px;align-self:center}.price{font-size:29px;margin:0;align-self:center}.price>span{font-size:9px}.price small{font-size:9px}.card-note{grid-column:1/-1;margin-top:16px;padding-top:12px;font-size:11px}.allocation{display:block;line-height:1.9}.allocation small{display:block;margin-top:6px}.upgrade{padding:22px 20px;gap:13px;margin:30px 0 42px;align-items:flex-start;position:relative}.upgrade h2{font-size:15px}.upgrade-symbol{font-size:30px}.upgrade-tag{display:none}.upgrade p:last-child{font-size:11px}.expense-category{margin-bottom:22px}.category-heading{padding:12px}.expense-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 14px;padding:17px 12px}.item-copy{grid-column:1/-1}.item-copy h4{font-size:13px;line-height:1.6}.item-copy p{font-size:10px}.item-meta{flex-direction:row;gap:10px;font-size:10px}.item-total{font-size:16px}.grand-total{padding:4px 12px 0;margin-top:28px}.grand-total p{font-size:27px}.grand-total>div>span{font-size:14px}.footer{margin-top:42px;display:block;font-size:10px}.footer-notes{text-align:left;margin-top:18px}}
@media(max-width:360px){.wrap{padding-inline:16px}.share-card{padding:18px}.price{font-size:25px}.share-card h3{font-size:12px}.trip-meta{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@page{size:A4;margin:14mm}
@media print{html{background:white}.wrap{padding:0;max-width:none}.masthead{height:15mm}nav,.skip-link{display:none}.hero{min-height:55mm;padding:8mm 0}h1{font-size:34pt}.share-grid{grid-template-columns:repeat(3,1fr)}.share-card{display:flex;padding:5mm}.share-card h3{font-size:10pt}.price{font-size:23pt;margin:4mm 0}.card-note{font-size:8pt}.upgrade{margin:7mm 0 10mm;padding:5mm}.details{break-before:page}.expense-row,.expense-category,.share-card,.upgrade{break-inside:avoid}.expense-row{padding:4mm;grid-template-columns:minmax(0,1fr) 30mm 25mm}.item-copy{grid-column:auto}.item-meta{flex-direction:column}.footer{margin-top:8mm;padding:5mm 0}.grand-total{margin-top:5mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* 已確認的預訂項目與內容卡片，沿用原版配色。 */
.wrap{max-width:1320px}.details{margin-top:54px}.booking-table{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}.booking-columns{display:grid;grid-template-columns:98px minmax(0,1fr) 110px 100px 125px;gap:18px;padding:18px 22px;background:var(--soft);font-size:14px}.booking-columns span:nth-child(n+3){text-align:right}.booking-group{display:grid;grid-template-columns:98px minmax(0,1fr);gap:18px;padding:22px;border-top:1px solid var(--line)}.booking-kind span{display:inline-block;border:1px solid #c7b28e;border-radius:999px;padding:7px 13px;color:var(--green);font-size:15px;white-space:nowrap}.booking-items{min-width:0;display:grid;gap:16px}.booking-row{display:grid;grid-template-columns:minmax(0,1fr) 110px 100px 125px;gap:18px;align-items:start}.booking-row+.booking-row{border-top:1px solid var(--line);padding-top:16px}.booking-content{display:grid;gap:9px;min-width:0}.booking-card{background:var(--paper);border:1px solid #ece9df;border-radius:6px;padding:12px 15px}.booking-card h3{font-size:17px;line-height:1.6}.booking-card p{font-size:15px;color:#53645a;line-height:1.75;margin:5px 0 0;overflow-wrap:anywhere}.booking-row[data-item="hotel-fee"] .booking-card p{font-size:14px}.upgrade-note{display:inline-block;margin-left:10px;font-size:12px;color:var(--muted)}.upgrade-note>span{color:var(--gold)}.booking-metric{display:flex;flex-direction:column;text-align:right;gap:8px;padding-top:12px}.booking-metric small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.booking-metric strong{font-size:19px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.booking-metric>span{font-size:12px;color:var(--muted)}.per-person strong{color:var(--green)}.rounding-note{font-size:13px;line-height:1.9;color:var(--muted);margin:20px 16px 0}.section-caption,.trip-meta{font-size:13px}.card-note{font-size:13px}.pill{font-size:12px}
@media(max-width:1000px){.booking-columns{grid-template-columns:88px minmax(0,1fr) 90px 85px 105px;gap:12px}.booking-group{grid-template-columns:88px minmax(0,1fr);gap:12px;padding:18px}.booking-columns{padding-inline:18px}.booking-row{grid-template-columns:minmax(0,1fr) 90px 85px 105px;gap:12px}.booking-metric strong{font-size:17px}}
@media(max-width:820px){.booking-columns{display:none}.booking-group{grid-template-columns:minmax(0,1fr);gap:14px;padding:18px 14px}.booking-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}.booking-content{grid-column:1/-1}.booking-metric{text-align:left;border-top:1px solid var(--line);padding-top:12px}.booking-metric small{position:static;width:auto;height:auto;clip-path:none;font-size:12px;color:var(--muted)}.booking-metric strong{font-size:18px}.booking-card h3{font-size:16px}.booking-card p{font-size:14px}.details{margin-top:40px}.rounding-note{margin-inline:0}.section-caption,.trip-meta{font-size:12px}}
/* 閱讀字級：內容與註解均可直接閱讀，不依賴瀏覽器放大。 */
.wordmark span,.art-caption,.eyebrow{font-size:12px}
nav{font-size:15px}
.subtitle,.trip-meta,.section-caption,.card-note,.pill{font-size:15px}
.share-card h3{font-size:18px}
.price>span,.price small{font-size:14px}
.booking-columns,.booking-kind span{font-size:16px}
.booking-card h3{font-size:18px}
.booking-card p,.booking-row[data-item="hotel-fee"] .booking-card p{font-size:16px;line-height:1.8;color:#495d52}
.upgrade-note,.booking-metric>span{font-size:14px}
.booking-metric strong{font-size:20px}
.grand-total small,.rounding-note,.footer{font-size:14px;line-height:1.8}
.grand-total p span{font-size:15px}
@media screen and (max-width:820px){
  nav{font-size:14px;gap:18px}
  .hero .eyebrow{font-size:12px}
  .subtitle,.trip-meta,.section-caption{font-size:14px}
  .trip-meta{gap:10px}
  .share-card{display:flex;padding:22px}
  .share-card h3{font-size:18px;align-self:flex-start}
  .price{font-size:34px;margin:12px 0 16px;align-self:flex-start}
  .price>span,.price small,.card-note,.pill{font-size:14px}
  .card-note{margin-top:0}
  .booking-card h3{font-size:18px}
  .booking-card p{font-size:16px}
  .booking-metric small,.booking-metric>span{font-size:14px}
  .booking-metric strong{font-size:19px}
  .grand-total{gap:12px;padding-inline:0}
  .grand-total p{font-size:27px;white-space:nowrap}
  .grand-total>div>span{font-size:16px}
  .footer{font-size:14px}
}
@page{size:A4;margin:12mm}
@media print{
  :root{font-size:11pt;background:#fff}
  body{background:#fff}
  .wrap{max-width:none;padding-inline:0}
  .wordmark span,.art-caption,.eyebrow,.hero .eyebrow{font-size:10pt}
  .subtitle,.trip-meta,.section-caption{font-size:10.5pt}
  .masthead{height:15mm}
  .hero{min-height:55mm;padding:8mm 0;overflow:visible}
  .destination-art{position:relative;right:auto;top:auto;width:65mm;height:45mm;opacity:1}
  .share-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm}
  .share-card{display:flex;padding:4mm;break-inside:avoid}
  .share-card h3{font-size:12pt}
  .card-top{margin-bottom:4mm}
  .pill,.price>span,.price small,.card-note{font-size:10pt}
  .price{font-size:23pt;margin:4mm 0;align-self:flex-start}
  .card-note{margin-top:0;padding-top:3mm;line-height:1.65}
  .section-heading{display:flex;align-items:flex-end;margin-bottom:5mm}
  .section-caption{margin-top:0}
  .details{break-before:page;margin-top:0}
  .booking-table{overflow:visible;border-radius:0}
  .booking-columns{display:grid;grid-template-columns:18mm minmax(0,1fr) 22mm 19mm 23mm;gap:2.5mm;padding:3mm;font-size:10pt}
  .booking-group{grid-template-columns:18mm minmax(0,1fr);gap:2.5mm;padding:3mm;break-inside:avoid}
  .booking-kind span{font-size:10pt;padding:2mm 1.5mm}
  .booking-items{gap:3mm}
  .booking-row{grid-template-columns:minmax(0,1fr) 22mm 19mm 23mm;gap:2.5mm;break-inside:avoid}
  .booking-row+.booking-row{padding-top:3mm}
  .booking-content{grid-column:auto;gap:2mm}
  .booking-card{padding:2.5mm}
  .booking-card h3{font-size:11pt;line-height:1.6}
  .booking-card p,.booking-row[data-item="hotel-fee"] .booking-card p{font-size:11pt;line-height:1.65}
  .upgrade-note{font-size:10pt;margin-left:2mm}
  .booking-metric{text-align:right;border:0;padding-top:2mm;gap:2mm}
  .booking-metric strong{font-size:12pt}
  .booking-metric>span{font-size:10pt;line-height:1.5}
  .booking-metric small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .grand-total{margin-top:5mm;padding:0;break-inside:avoid}
  .grand-total>div>span{font-size:12pt}
  .grand-total small,.rounding-note,.footer{font-size:10pt;line-height:1.7}
  .grand-total p{font-size:24pt}
  .grand-total p span{font-size:10pt}
  .rounding-note{margin:4mm 0 0;break-inside:avoid}
  .footer{margin-top:6mm;padding:4mm 0;break-inside:avoid}
  .footer-notes{text-align:right;margin-top:0}
}
/* 原生表格表頭在列印續頁自動重複，畫面維持分組卡片。 */
.details-pagination{width:100%;border-collapse:separate;border-spacing:0;text-align:left}
.details-pagination>thead,.details-pagination>tbody{display:block}
.details-pagination>thead>tr,.details-pagination>tbody>tr{display:block}
.details-pagination>thead>tr>td,.details-pagination>tbody>tr>td{display:block;padding:0}
.details-pagination .booking-columns{border:1px solid var(--line);border-radius:8px 8px 0 0}
.details-pagination .booking-group{background:var(--card);border:1px solid var(--line);border-top:0}
.details-pagination>tbody>tr:last-child .booking-group{border-radius:0 0 8px 8px}
@media screen and (max-width:820px){.details-pagination>tbody>tr:first-child .booking-group{border-top:1px solid var(--line);border-radius:8px 8px 0 0}}
@media print{
 .details-pagination{table-layout:fixed}
 .details-pagination>thead{display:table-header-group}
 .details-pagination>tbody{display:table-row-group}
 .details-pagination>thead>tr,.details-pagination>tbody>tr{display:table-row;break-inside:avoid}
 .details-pagination>thead>tr>td,.details-pagination>tbody>tr>td{display:table-cell}
 .details-pagination>thead>tr>td{padding-bottom:2mm}
 .details-pagination .section-heading{padding-top:2mm;background:#fff}
 .details-pagination .booking-columns,.details-pagination>tbody>tr:last-child .booking-group{border-radius:0}
}
@media print{.details-pagination>thead{break-inside:avoid}}

/* 房型旁的升等標籤。 */
.upgrade-note{display:inline-flex;align-items:center;gap:5px;vertical-align:middle;white-space:nowrap;border:1px solid #c4a4da;border-radius:999px;padding:2px 9px 2px 6px;background:#f5eefb;color:#795093;line-height:1.6}
.upgrade-diamond{width:20px;height:18px;flex:none}
@media print{.upgrade-note{padding:1px 6px 1px 4px;gap:3px}.upgrade-diamond{width:14pt;height:12pt}}
