:root{
  --ink:#171716;
  --paper:#f2eee6;
  --card:#fbf8f1;
  --accent:#c44636;
  --muted:#716d64;
  --line:#d8d1c4;
  --jade:#315c52;
  --shadow:0 18px 50px rgba(31,27,20,.09);
  --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;line-height:1.65}
a{color:inherit}
button{font:inherit}
.wrap{width:min(1120px,calc(100% - 36px));margin-inline:auto}
.hero{position:relative;overflow:hidden;background:var(--ink);color:#f7f2e8;padding:72px 0 58px;min-height:500px;display:flex;align-items:flex-end}
.hero::after{content:"";position:absolute;width:500px;height:500px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-170px;top:-210px}
.hero__content{position:relative;z-index:2}
.hero__skyline{position:absolute;left:0;right:0;bottom:-2px;color:#f7f2e8;opacity:.25}
.hero__skyline svg{width:100%;display:block}
.eyebrow{margin:0 0 8px;font-size:.74rem;letter-spacing:.22em;font-weight:800;color:#d9a89c}
.eyebrow.dark{color:var(--accent)}
.hero h1{margin:0;max-width:820px;font-size:clamp(3rem,8vw,6.8rem);line-height:.92;letter-spacing:-.055em;font-weight:850}
.hero h1 span{font-weight:500;color:#d7ccbb}
.hero__meta{margin:24px 0 20px;font-size:1.05rem;color:#d9d2c7}
.hero__chips{display:flex;flex-wrap:wrap;gap:8px;max-width:850px}
.hero__chips span{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);padding:7px 11px;border-radius:999px;font-size:.88rem;backdrop-filter:blur(8px)}
.countdown{margin-top:20px;font-weight:700;color:#f0b5a7}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:-30px;position:relative;z-index:3}
.quick-card{background:var(--card);border:1px solid rgba(23,23,22,.08);border-radius:18px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}
.quick-card__label{font-size:.75rem;color:var(--accent);font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.quick-card strong{font-size:1.08rem;margin-top:5px}
.quick-card small{color:var(--muted)}
.booking-panel{margin-top:42px;background:var(--jade);color:#f7f2e8;border-radius:var(--radius);padding:28px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.booking-panel h2{margin:0 0 6px;font-size:clamp(1.45rem,3vw,2rem)}
.booking-panel p{margin:0;max-width:720px;color:#dbe5e1}
.booking-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;min-width:260px}
.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 16px;border:1px solid transparent;text-decoration:none;font-weight:750;cursor:pointer}
.button--light{background:#f7f2e8;color:#17332d}
.button--ghost{border-color:rgba(255,255,255,.3);color:#fff;background:transparent}
.button--dark{background:var(--ink);color:#fff}
.section-head{margin-top:62px;display:flex;align-items:end;justify-content:space-between;gap:20px}
.section-head h2{font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.05;letter-spacing:-.04em;margin:0}
.section-head--compact{margin-top:0;margin-bottom:18px}
.filter{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.filter__btn{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 12px;cursor:pointer;color:var(--muted)}
.filter__btn.is-active{background:var(--ink);color:white;border-color:var(--ink)}
.day-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px;position:sticky;top:8px;z-index:20}
.day-tab{border:1px solid var(--line);background:rgba(242,238,230,.92);backdrop-filter:blur(14px);padding:12px 14px;border-radius:16px;text-align:left;cursor:pointer;color:var(--muted);box-shadow:0 8px 30px rgba(0,0,0,.05)}
.day-tab b,.day-tab span{display:block}
.day-tab b{font-size:.8rem;letter-spacing:.08em}
.day-tab span{font-size:.92rem;margin-top:2px}
.day-tab.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}
.itinerary{margin-top:22px}
.day-panel{display:none}
.day-panel.is-active{display:block}
.day-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-bottom:16px}
.day-title,.meal-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.day-title h3{font-size:clamp(1.7rem,4vw,2.8rem);line-height:1.08;letter-spacing:-.04em;margin:4px 0 8px}
.day-title p{margin:0;color:var(--muted)}
.meal-card h4{margin:0 0 10px;font-size:1rem}
.meals{display:grid;gap:7px}
.meal-line{display:grid;grid-template-columns:52px 1fr;gap:10px;font-size:.93rem}
.meal-line b{color:var(--accent)}
.timeline{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.timeline-item{display:grid;grid-template-columns:110px 42px 1fr;gap:8px;padding:22px 24px;border-bottom:1px solid var(--line)}
.timeline-item:last-child{border-bottom:0}
.timeline-time{font-weight:850;font-size:.95rem;white-space:nowrap}
.timeline-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#efe7dc;font-size:1rem}
.timeline-body h4{margin:0 0 3px;font-size:1.04rem}
.timeline-body p{margin:0;color:var(--muted);font-size:.94rem}
.timeline-body .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.tag{font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:3px 8px;color:var(--muted)}
.tag--warn{border-color:#e0ad64;background:#fff4df;color:#895b1f}
.tag--food{background:#f8ebe8;color:#913527;border-color:#ecc7bf}
.tag--hotel{background:#e5efec;color:#315c52;border-color:#bcd3cd}
.timeline-item[data-kind].is-hidden{display:none}
.map-link{display:inline-flex;margin-top:9px;font-size:.78rem;font-weight:750;text-decoration:none;color:var(--jade)}
.overview,.picks{margin-top:64px}
.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
table{width:100%;border-collapse:collapse;min-width:820px}
th,td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;letter-spacing:.08em;color:var(--muted);background:#ece6db}
tbody tr:last-child td{border-bottom:0}
.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pick-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:22px;min-height:205px;overflow:hidden}
.pick-card .rank{font-size:3.4rem;line-height:1;color:#ded6c9;font-weight:900;letter-spacing:-.08em}
.pick-card h3{margin:16px 0 7px;font-size:1.12rem}
.pick-card p{margin:0;color:var(--muted);font-size:.92rem}
.pick-card span{display:inline-block;margin-top:12px;font-size:.76rem;color:var(--accent);font-weight:750}
.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:64px;margin-bottom:64px}
.note-card{background:#e9e2d6;border-radius:20px;padding:22px;border:1px solid #d7cfc0}
.note-card h3{margin:0 0 10px}
.note-card ul{padding-left:20px;margin:0;color:var(--muted)}
footer{border-top:1px solid var(--line);padding:26px 0 42px;background:#e9e3d8}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
footer small{color:var(--muted)}
@media (max-width:860px){
  .quick-grid{grid-template-columns:repeat(2,1fr)}
  .booking-panel{align-items:flex-start;flex-direction:column}
  .booking-actions{justify-content:flex-start;min-width:0}
  .day-intro{grid-template-columns:1fr}
  .pick-grid,.notes-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:620px){
  .wrap{width:min(100% - 24px,1120px)}
  .hero{padding-top:56px;min-height:520px}
  .hero h1{font-size:clamp(2.7rem,14vw,4.7rem)}
  .quick-grid{grid-template-columns:1fr 1fr;gap:8px}
  .quick-card{padding:14px}
  .section-head{align-items:flex-start;flex-direction:column}
  .filter{justify-content:flex-start}
  .day-tabs{gap:5px;top:6px}
  .day-tab{padding:9px 8px;border-radius:12px;text-align:center}
  .day-tab b{font-size:.68rem}.day-tab span{font-size:.76rem}
  .timeline-item{grid-template-columns:76px 34px 1fr;padding:18px 14px;gap:5px}
  .timeline-time{font-size:.79rem}
  .timeline-icon{width:28px;height:28px;font-size:.83rem}
  .pick-grid,.notes-grid{grid-template-columns:1fr}
  .footer__inner{align-items:flex-start;flex-direction:column}
}
@media print{
  body{background:#fff}.hero{min-height:auto;padding:28px 0;background:#fff;color:#000;border-bottom:2px solid #000}.hero__skyline,.hero__chips,.countdown,.booking-actions,.filter,.day-tabs,#printBtn{display:none!important}
  .hero h1 span,.hero__meta{color:#333}.quick-grid{margin-top:16px;box-shadow:none}.quick-card,.day-title,.meal-card,.timeline,.pick-card,.note-card{box-shadow:none;background:#fff}
  .day-panel{display:block!important;break-inside:avoid;margin-bottom:28px}.section-head{margin-top:30px}.timeline-item{break-inside:avoid}.overview,.picks,.notes-grid{margin-top:30px}
}
