/* ============================================================
   OffDayz 設計系統 v2  —  配色方案「地中海街景」Terracotta × Sage
   色票說明見 DESIGN-PALETTE.md；版型結構見 DESIGN.md
   單一來源：所有頁面都 link 這一支，不要在頁面內另開色票
   ============================================================ */

:root{
  /* 主色 —— 陶土 × 鴨綠（不是 OkinawaSundays 那組；換色只改這裡的值，變數名不動） */
  --navy:#1E4A45;          /* 最深，footer / 主按鈕 / 大標 */
  --navy-2:#2B615A;
  --blue:#B84E29;          /* 深陶土：連結、eyebrow、hover 邊框、focus（變數名沿用） */
  --lagoon:#8FBFB2;        /* 鼠尾草綠：裝飾色塊 */
  --lagoon-soft:#E6F1EC;   /* 淺底 */
  --coral:#CF5730;         /* 陶土橘：週末日期、hero 色塊、重點標籤 */
  --sun:#E8A62F;           /* 芥末金：螢光筆底線、次要 CTA、深底上的亮字 */
  --sand:#FBF4EC;          /* 頁面底色（不要用白） */
  --paper:#FFFCF7;         /* 卡片底色 */
  --ink:#26312E;
  --muted:#6E6459;
  --line:rgba(38,49,46,.14);

  /* 語意色（價格 / 狀態） */
  --good:#1F7A63;          /* 最低價、可出發 */
  --warn:#7A6C5C;          /* 中間價：中性灰褐，刻意不搶眼 */
  --bad:#8E2F22;           /* 最貴：深氧化紅，跟品牌陶土拉開 */

  --shadow:0 18px 50px rgba(74,52,36,.13);
  --shadow-sm:0 9px 24px rgba(74,52,36,.10);
  --radius-xl:32px; --radius-lg:24px; --radius:16px;
  --max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{
  margin:0;background:var(--sand);color:var(--ink);
  font-family:"Noto Sans TC","PingFang TC","Hiragino Sans",system-ui,sans-serif;
  line-height:1.6;-webkit-text-size-adjust:100%;isolation:isolate;
}
button,input,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent;color:inherit}
button{cursor:pointer}
a{color:inherit}
img,svg{display:block;max-width:100%}

/* ---------- 版面骨架 ---------- */
.shell{width:min(var(--max),calc(100% - 40px));margin:0 auto}
.shell-narrow{width:min(780px,calc(100% - 40px));margin:0 auto}
.eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.section{padding:52px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px;flex-wrap:wrap}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.9rem);font-weight:900;line-height:1.06;letter-spacing:-.05em;margin:8px 0 0}
.section-head p{max-width:460px;margin:6px 0 0;color:var(--muted);font-size:.9rem}
.section-link{display:inline-flex;align-items:center;gap:8px;font-weight:900;text-decoration:none;color:var(--blue);font-size:.88rem;white-space:nowrap}
.section-link span{transition:transform .2s ease}
.section-link:hover span{transform:translateX(4px)}

/* ---------- 元件：pill / 按鈕 ---------- */
.pill{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;
  background:var(--paper);border:1px solid var(--line);font-size:.76rem;font-weight:900}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--good)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;
  border:1px solid transparent;font-weight:900;font-size:.9rem;text-decoration:none;transition:.18s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--blue);transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.btn-ghost{background:var(--paper);border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}
.btn-sun{background:var(--sun);color:var(--navy)}
.btn-sun:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}

/* ---------- 站頭 ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(251,244,236,.74);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:background .25s,box-shadow .25s,border-color .25s}
.site-header.stuck{background:rgba(251,244,236,.95);border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}
.site-header .nav{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0}
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;letter-spacing:-.02em}
.brand-mark{width:34px;height:34px;border-radius:50%;background:linear-gradient(140deg,var(--sun),var(--coral));
  display:grid;place-items:center;font-size:1rem;flex-shrink:0}
.desktop-nav{display:flex;gap:4px}
.desktop-nav a{padding:9px 10px;border-radius:999px;text-decoration:none;font-size:.86rem;font-weight:700;color:var(--muted);transition:.16s;white-space:nowrap}
.desktop-nav a:hover{background:var(--lagoon-soft);color:var(--navy)}
.desktop-nav a[aria-current="page"]{background:var(--navy);color:#fff}
.nav-actions{display:flex;gap:8px;align-items:center}
.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--paper);
  display:grid;place-items:center;font-size:.95rem}
.menu-btn{display:none}
@media(max-width:860px){
  .desktop-nav{display:none}
  .menu-btn{display:grid}
  .drop-nav{display:grid;gap:2px;padding:8px 0 14px;border-top:1px solid var(--line)}
  .drop-nav a{padding:11px 4px;text-decoration:none;font-weight:800;font-size:.95rem}
}

/* ---------- Hero ---------- */
.hero{position:relative;padding:56px 0 46px;overflow:hidden}
.hero::before{content:"";position:absolute;width:520px;height:520px;right:-170px;top:-170px;
  background:var(--coral);border-radius:47% 53% 64% 36%/45% 42% 58% 55%;opacity:.20;z-index:0;
  animation:blob 12s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;width:250px;height:250px;left:-130px;bottom:-140px;
  border:52px solid rgba(143,191,178,.34);border-radius:50%;z-index:0}
@keyframes blob{to{border-radius:58% 42% 38% 62%/52% 60% 40% 48%;transform:translateY(14px)}}
.hero .shell{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:30px}}
.hero h1{font-size:clamp(2.625rem,6.4vw,5rem);font-weight:900;letter-spacing:-.07em;line-height:1.02;margin:22px 0 18px;color:var(--navy)}
.hero h1 .play{position:relative;display:inline-block;color:var(--blue)}
.hero h1 .play::after{content:"";position:absolute;height:11px;left:3px;right:2px;bottom:-4px;
  background:var(--sun);border-radius:50%;z-index:-1;transform:rotate(-2deg)}
.hero-lead{font-size:clamp(.95rem,1.6vw,1.12rem);max-width:520px;color:var(--muted);margin:0 0 24px}
.hero-cta{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- 卡片 ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);padding:20px}
.card-lg{border-radius:var(--radius-xl);padding:26px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card-title{font-size:1.02rem;font-weight:900;letter-spacing:-.02em;margin:0}

/* ---------- 數據橫幅 ---------- */
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:760px){.statband{grid-template-columns:1fr 1fr}}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.stat b{display:block;font-size:1.6rem;letter-spacing:-.04em;line-height:1.1}
.stat span{font-size:.74rem;color:var(--muted);font-weight:700}

/* ---------- 橫向捲動列 ---------- */
.hrow{display:flex;gap:12px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.hrow::-webkit-scrollbar{display:none}
.hrow>*{scroll-snap-align:start;flex-shrink:0}

/* 價格卡 */
.pcard{width:150px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 14px;text-align:center;text-decoration:none;color:inherit;transition:.18s}
.pcard:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:var(--shadow-sm);background:var(--lagoon-soft)}
.pcard .flag{font-size:1.7rem}
.pcard .city{font-size:.88rem;font-weight:900;margin-top:4px}
.pcard .price{font-size:1.25rem;font-weight:900;color:var(--good);letter-spacing:-.03em;margin-top:2px}
.pcard .sub{font-size:.66rem;color:var(--muted);font-weight:700}

/* 目的地大卡 */
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.dgrid{grid-template-columns:repeat(2,1fr)}}
.dcard{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:20px 18px;text-decoration:none;color:inherit;overflow:hidden;transition:.18s;min-height:132px;
  display:flex;flex-direction:column;justify-content:space-between}
.dcard::before{content:"";position:absolute;width:130px;height:130px;right:-46px;top:-46px;border-radius:50%;
  background:var(--lagoon);opacity:.22;transition:.25s}
.dcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--blue)}
.dcard:hover::before{transform:scale(1.25);opacity:.32}
.dcard .flag{font-size:1.9rem;position:relative}
.dcard .name{font-size:1.05rem;font-weight:900;letter-spacing:-.02em;position:relative}
.dcard .meta{font-size:.74rem;color:var(--muted);font-weight:700;position:relative}

/* ---------- 年曆 banner（招牌功能） ---------- */
.calband{background:linear-gradient(150deg,var(--navy) 0%,var(--navy-2) 58%,#3A7F6E 100%) 0%,var(--navy-2) 58%,#0d5468 100%);
  color:#fff;border-radius:var(--radius-xl);padding:30px 32px;position:relative;overflow:hidden}
.calband::after{content:"";position:absolute;right:-90px;bottom:-120px;width:320px;height:320px;
  border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(232,166,47,.30),transparent 70%)}
.calband-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;position:relative;z-index:1}
@media(max-width:820px){.calband{padding:24px 22px}.calband-grid{grid-template-columns:1fr;gap:22px}}
.calband .eyebrow{color:var(--lagoon)}
.calband h2{font-size:clamp(1.5rem,3vw,2.3rem);font-weight:900;letter-spacing:-.045em;line-height:1.1;margin:8px 0 10px}
.calband p{margin:0 0 18px;color:rgba(255,255,255,.72);font-size:.9rem;max-width:440px}
.nextbox{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);
  padding:18px 20px;backdrop-filter:blur(6px)}
.nextbox .lbl{font-size:.68rem;font-weight:900;letter-spacing:.14em;color:var(--lagoon);text-transform:uppercase}
.nextbox .rng{font-size:1.5rem;font-weight:900;letter-spacing:-.03em;margin:6px 0 2px}
.nextbox .cnt{font-size:.8rem;color:rgba(255,255,255,.7);font-weight:700}
.nextbox .tag{display:inline-block;margin-top:10px;background:var(--sun);color:var(--navy);
  border-radius:999px;padding:3px 11px;font-size:.72rem;font-weight:900}

/* ---------- 活動 / 酒店列表 ---------- */
.elist{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.elist{grid-template-columns:1fr}}
.ecard{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;
  display:flex;gap:14px;align-items:flex-start;transition:.18s}
.ecard:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.ecard .ico{font-size:1.7rem;line-height:1}
.ecard h3{margin:0 0 2px;font-size:.98rem;letter-spacing:-.02em}
.ecard .when{font-size:.76rem;color:var(--blue);font-weight:900}
.ecard .cat{font-size:.72rem;color:var(--muted);font-weight:700}

.hlist{display:grid;gap:10px}
.hrow-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;display:flex;align-items:center;gap:14px}
.hrow-card .rank{width:26px;height:26px;border-radius:50%;background:var(--navy);color:var(--sun);
  display:grid;place-items:center;font-size:.76rem;font-weight:900;flex-shrink:0}
.hrow-card .info{flex:1;min-width:0}
.hrow-card .nm{font-weight:800;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hrow-card .sub{font-size:.74rem;color:var(--muted);font-weight:700}
.hrow-card .amt{font-size:1.05rem;font-weight:900;color:var(--good);letter-spacing:-.02em}

/* ---------- 切換膠囊 ---------- */
.toggle{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px;gap:2px}
.toggle button{border:0;background:none;border-radius:999px;padding:8px 16px;font-size:.84rem;font-weight:800;color:var(--muted)}
.toggle button.on{background:var(--navy);color:#fff}

/* ---------- 狀態 ---------- */
.loading,.nodata{padding:26px;text-align:center;color:var(--muted);font-size:.84rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy);color:#EAF2EE;margin-top:40px;padding:44px 0 34px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:44px}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr;gap:26px}}
.site-footer .brand{color:#fff}
.footer-brand p{max-width:400px;color:#B7C9C1;font-size:.85rem;margin:12px 0 0}
.footer-col strong{display:block;color:var(--lagoon);font-size:.7rem;letter-spacing:.14em;margin-bottom:12px;text-transform:uppercase}
.footer-col a{display:block;text-decoration:none;color:#EAF2EE;margin:7px 0;font-size:.85rem}
.footer-col a:hover{color:var(--sun)}
.footer-base{margin-top:30px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
  color:#A3B6AE;font-size:.74rem;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* ---------- 海浪裝飾（沿用 OkinawaSundays） ---------- */
.ocean-waves{position:fixed;left:0;right:0;bottom:0;height:92px;z-index:-1;pointer-events:none;opacity:.42;overflow:hidden}
.ocean-waves path:first-of-type{fill:rgba(143,191,178,.55)}
.ocean-waves path:last-of-type{fill:rgba(38,112,95,.34)}
.ocean-waves svg{width:200%;height:100%}

/* ---------- 共用可用性 / 小螢幕 ---------- */
[hidden]{display:none!important}
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
button:disabled{opacity:.45;cursor:not-allowed}
.skip-link{position:fixed;top:8px;left:20px;z-index:200;transform:translateY(-160%);background:var(--navy);color:var(--paper);padding:12px 18px;border-radius:var(--radius)}
.skip-link:focus{transform:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero-grid>*,.calband-grid>*,.dgrid>*,.elist>*,.footer-grid>*{min-width:0}
.drop-nav a[aria-current="page"]{color:var(--blue)}
.brand{white-space:nowrap}
.nav-actions .pill{white-space:nowrap}
.pill.stale .dot{background:var(--warn)}
.data-notice{font-size:.8rem;color:var(--muted);margin:14px 0 0}
.empty-note{font-size:1rem;font-weight:800;margin:8px 0}
.hero-price-row{border:0;padding:9px 0;border-radius:0;border-bottom:1px solid var(--line)}
.hero-price-flag{font-size:1.3rem}
.hrow-card .amt{white-space:nowrap;flex-shrink:0}
.table-scroll{margin-top:14px;overflow-x:auto;max-width:100%}
#priceTable{width:100%;border-collapse:collapse;font-size:.84rem;white-space:nowrap}
.event-link{text-decoration:none}
.ecard:hover{border-color:var(--blue);box-shadow:var(--shadow)}
.hotel-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;max-width:100%}
.field-label{display:grid;gap:4px;font-size:.74rem;font-weight:700;color:var(--muted)}
.field-label select{max-width:100%;background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:10px 14px;border-radius:999px;font-size:.84rem}
.toggle{max-width:100%;flex-wrap:wrap}
.toggle button{min-height:42px}
.pcard .sub{font-size:.74rem}
.nextbox .lbl{font-size:.74rem}
.ocean-wave-back{animation:tide 18s ease-in-out infinite alternate}
.ocean-wave-front{animation:tide 14s ease-in-out infinite alternate-reverse}
@keyframes tide{to{transform:translateX(-6%)}}

/* ---------- 目的地 / 城市指南 ---------- */
.page-hero{padding:48px 0 38px}
.page-hero .hero-lead{max-width:680px;margin-bottom:12px}
.country-section{padding-top:36px;padding-bottom:10px}
.country-head{justify-content:flex-start;align-items:center;gap:12px}
.country-head h2{margin:0}
.country-flag{font-size:2rem}
.country-count{margin-left:auto;font-size:.8rem;color:var(--muted)}
.destination-card{min-height:220px;gap:8px;justify-content:flex-start}
.destination-card .name{font-size:1.25rem}
.destination-card .meta{font-size:.85rem;line-height:1.55;flex:1}
.city-tag{align-self:flex-start;background:var(--lagoon-soft);font-size:.74rem;padding:4px 10px}
.hero-flag{font-size:2.4rem;margin-top:20px}
.best-months{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}
.qinfo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:12px 0 24px}
.qi{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.qi-label{font-size:.74rem;color:var(--muted);font-weight:700;margin-bottom:5px}
.qi-val{font-size:.9rem;font-weight:800;overflow-wrap:anywhere}
.area-desc{font-size:.9rem;color:var(--muted);margin-top:10px}
.flight-row,.hotel-row{justify-content:space-between;margin-bottom:10px}
.flight-row>div,.hotel-row>div{min-width:0}
.flight-route,.hotel-name{font-size:.95rem;font-weight:800;line-height:1.5}
.flight-meta,.flight-month,.hotel-sub,.hotel-nights{font-size:.78rem;color:var(--muted)}
.flight-price,.hotel-price{font-size:1.25rem;font-weight:900;color:var(--good);white-space:nowrap}
.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.spot-tag,.art-tag,.ev-tag,.ev-cat{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--lagoon-soft);color:var(--blue);font-size:.74rem;font-weight:700}
.food-tag{background:var(--sun);color:var(--navy)}
.spot-name,.art-title{font-size:1.05rem;font-weight:900;line-height:1.4;margin:8px 0}
.spot-desc,.art-summary{font-size:.9rem;color:var(--muted);line-height:1.7}
.art-card{margin-bottom:14px}
.art-tags{display:flex;flex-wrap:wrap;gap:6px}
.art-date{font-size:.74rem;color:var(--muted);margin-top:12px}
.holiday-row .nm{white-space:normal}
.holiday-warning{font-size:.74rem;color:var(--coral);flex-shrink:0}

/* ---------- 季節限定（原生 details，支援鍵盤與觸控） ---------- */
.seasonal-section{padding-top:12px}
.month-strip,.cat-strip{display:flex;width:fit-content;gap:3px;margin-bottom:12px}
.month-strip button{padding:8px 13px}
.result-count{margin:18px 0;font-size:.84rem;font-weight:700;color:var(--muted)}
.events-list{align-items:start}
.events-list .no-events{grid-column:1/-1}
.ev-card{display:block;padding:20px}
.ev-card[open]{border-color:var(--blue)}
.ev-card summary{cursor:pointer;list-style:none}
.ev-card summary::-webkit-details-marker{display:none}
.ev-icon{font-size:2rem;display:block;margin-bottom:12px}
.ev-title{font-size:1.1rem;font-weight:900;line-height:1.4;margin-bottom:6px}
.ev-period{color:var(--blue);font-size:.8rem;font-weight:800;margin-bottom:8px}
.ev-desc-short,.ev-desc-full{font-size:.9rem;line-height:1.65;color:var(--muted);margin:10px 0}
.ev-desc-short{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ev-price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.ev-dest-mini{font-size:.8rem;color:var(--muted)}
.ev-price-mini,.ev-dest-price{font-size:1rem;font-weight:900;color:var(--good);white-space:nowrap}
.ev-expand-hint{font-size:.74rem;color:var(--blue);font-weight:800;text-align:right;margin-top:8px}
.ev-card[open] .ev-expand-hint{display:none}
.ev-detail{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}
.ev-tip{background:var(--lagoon-soft);color:var(--navy-2);padding:12px;border-radius:var(--radius);font-size:.84rem;line-height:1.6;margin:10px 0}
.ev-tip::before{content:"💡 "}
.ev-dests{display:grid;gap:8px}
.ev-dest{background:var(--sand);padding:12px;border-radius:var(--radius);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ev-dest-info{min-width:0;flex:1 1 100%}
.ev-dest-city{font-size:.9rem;font-weight:800}
.ev-dest-note{font-size:.8rem;color:var(--muted);line-height:1.5}
.ev-dest-link{font-size:.8rem;font-weight:800;text-decoration:none;color:var(--blue);padding:7px 12px;background:var(--paper);border:1px solid var(--line);border-radius:999px;margin-left:auto}
.ev-dest-link:hover{border-color:var(--blue)}
.ev-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.no-events{text-align:center;padding:40px 20px;color:var(--muted)}
.no-events .icon{font-size:2rem}
@media(max-width:900px){.qinfo{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){
  .site-header .nav{gap:8px}.brand{gap:6px;font-size:.88rem}.brand-mark{width:30px;height:30px}
  .nav-actions{gap:5px}.nav-actions .pill{padding:5px 7px;font-size:.74rem}
  .icon-btn{width:36px;height:36px}.section{padding-top:34px;padding-bottom:34px}
  .hero{padding-top:36px}.card-lg{padding:20px}.nextbox{padding:16px}.nextbox .rng{font-size:1.3rem}
  .stat{padding:14px}.stat b{font-size:1.4rem}.dcard{padding:18px 14px}
  .hrow-card{gap:10px;padding:14px}.hrow-card .amt{font-size:1rem}
  .card-grid{grid-template-columns:1fr}.holiday-row{flex-wrap:wrap}.holiday-row .info{flex-basis:100%}
  .hotel-controls{width:100%}.section-head{gap:16px}.page-hero h1{line-height:1.12}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- 口袋地點 Places ---------- */
.pl-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.pl-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pl-chips::-webkit-scrollbar{display:none}
.pl-chip{flex:0 0 auto;padding:7px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--paper);
  color:var(--muted);font-size:.84rem;font-weight:800;white-space:nowrap;transition:.16s}
.pl-chip:hover{border-color:var(--blue);color:var(--blue)}
.pl-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.pl-count{font-size:.78rem;color:var(--muted);font-weight:700;margin-left:auto}

.pl-layout{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:920px){.pl-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:start}
  .pl-mapwrap{position:sticky;top:82px}}
.pl-mapwrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);padding:10px;overflow:hidden}
#placeMap{height:340px;border-radius:var(--radius);z-index:0}
@media(max-width:919px){#placeMap{height:260px}}
.pl-maphint{font-size:.72rem;color:var(--muted);font-weight:700;padding:8px 6px 2px}

.pl-list{display:grid;gap:11px}
.pl-card{width:100%;text-align:left;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--coral);
  border-radius:var(--radius);padding:15px 17px;transition:.16s}
.pl-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:var(--blue);border-left-color:var(--coral)}
.pl-card[aria-current="true"]{border-color:var(--blue);border-left-color:var(--blue);background:var(--lagoon-soft)}
.pl-card-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pl-card-nm{font-size:1rem;font-weight:900;letter-spacing:-.02em;line-height:1.3}
.pl-card-cat{flex:0 0 auto;font-size:.7rem;font-weight:900;color:var(--navy);background:var(--sun);
  padding:3px 9px;border-radius:999px}
.pl-card-region{font-size:.74rem;color:var(--blue);font-weight:900;margin-top:3px}
.pl-card-sum{font-size:.85rem;color:var(--muted);margin-top:7px;line-height:1.6}
.pl-tags{margin-top:9px;display:flex;flex-wrap:wrap;gap:6px}
.pl-tag{font-size:.7rem;color:var(--muted);background:var(--lagoon-soft);padding:3px 9px;border-radius:999px;font-weight:700}
.pl-links{margin-top:11px;display:flex;gap:8px;flex-wrap:wrap}
.pl-links a{font-size:.76rem;font-weight:800;text-decoration:none;color:var(--blue);
  border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:6px 12px}
.pl-links a:hover{border-color:var(--blue)}
.pl-unverified{font-size:.7rem;color:var(--warn);font-weight:800;margin-top:8px}
.pl-empty{border:1.5px dashed var(--line);border-radius:var(--radius-lg);padding:36px 24px;text-align:center;
  color:var(--muted);font-size:.88rem;line-height:1.8}
.pl-empty strong{display:block;color:var(--ink);font-size:1rem;margin-bottom:6px}
.leaflet-popup-content{font-family:inherit;font-size:.82rem;line-height:1.55;margin:10px 13px}
.leaflet-popup-content b{color:var(--navy)}
.leaflet-container{font-family:inherit;background:var(--lagoon-soft)}
