/* ═══════════════════════════════════════════════════════════════
   polish.css — 全站精緻化層（載入於各頁樣式之後）
   原則：保留品牌（teal / stone / cream、Noto Serif TC + Bebas Neue），
   統一細節：字距、陰影、互動狀態、無障礙焦點、動態偏好。
   ═══════════════════════════════════════════════════════════════ */

/* ── 字體渲染與選取 ── */
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
::selection{background:rgba(13,148,136,.25);}

/* ── 標題排版 ── */
h1,h2,h3,.hero-title,.section-title,.trip-hero-title,.blog-hero h1{text-wrap:balance;}
.hero-title{letter-spacing:-0.01em;}
.section-title{letter-spacing:-0.005em;}
p{text-wrap:pretty;}

/* 價格數字對齊 */
.trip-price,.sidebar-price-amount,.other-card-price,.stat-num{font-variant-numeric:tabular-nums;}

/* ── 一致的鍵盤焦點 ── */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:2.5px solid #14b8a6;outline-offset:3px;border-radius:4px;
}
.btn-primary:focus-visible,.nav-book:focus-visible,.blog-nav-book:focus-visible{outline-color:#99f6e4;}

/* ── 按鈕微互動 ── */
.btn-primary,.btn-outline,.btn-sm,.nav-book,.blog-nav-book,.guides-primary,.guides-secondary,
.sidebar-book-btn,.btn-book-nav,.article-cta a{
  transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease;
}
.btn-primary:hover,.article-cta a:hover,.sidebar-book-btn:hover{transform:translateY(-1.5px);box-shadow:0 8px 22px rgba(13,148,136,.32);}
.btn-primary:active,.btn-sm:active,.nav-book:active,.blog-nav-book:active,.sidebar-book-btn:active,
.btn-book-nav:active,.article-cta a:active,.guides-primary:active{transform:scale(.975);}

/* ── 卡片陰影統一（帶石色調的分層陰影）── */
.trip-card,.blog-card{
  box-shadow:0 1px 2px rgba(28,25,23,.06),0 6px 22px rgba(28,25,23,.07);
  border:1px solid rgba(28,25,23,.05);
}
.trip-card:hover,.blog-card:hover{
  box-shadow:0 2px 4px rgba(28,25,23,.06),0 18px 48px rgba(28,25,23,.14);
  border-color:rgba(13,148,136,.25);
}
.contact-card:hover{border-color:rgba(13,148,136,.35);}

/* 卡片圖片縮放（統一節奏） */
.blog-card-img{position:relative;}
.blog-card-img img{transition:transform .6s cubic-bezier(.2,.6,.2,1);}
.blog-card:hover .blog-card-img img{transform:scale(1.05);}

/* ── FAQ 精緻化 ── */
.faq-item{transition:border-color .2s,box-shadow .2s;}
.faq-item.open{border-color:rgba(13,148,136,.4);box-shadow:0 6px 24px rgba(28,25,23,.07);}
.faq-q{transition:background .15s;}

/* ── 語言切換（所有頁面一致；在深色導覽列上）── */
.lang-switcher{display:flex;align-items:center;border:1px solid rgba(255,255,255,.25);border-radius:20px;overflow:hidden;}
.lang-switcher .lang-btn{
  background:transparent;border:none;color:rgba(255,255,255,.7);font-size:.74rem;font-weight:700;
  padding:.3rem .65rem;cursor:pointer;letter-spacing:.05em;text-decoration:none;display:inline-block;line-height:1.4;
  transition:background .15s,color .15s;
}
.lang-switcher .lang-btn.active{background:rgba(255,255,255,.18);color:white;}
.lang-switcher .lang-btn:hover{color:white;}
.blog-nav-links .lang-switcher{margin:0 .1rem;}
@media(max-width:640px){.blog-nav-links .lang-switcher{display:none;}}

/* 手機選單語言列 */
.mobile-lang{display:flex;gap:.6rem;align-items:center;padding:.95rem .25rem;color:#78716c;font-size:.9rem;}
.mobile-lang a{color:#a8a29e!important;text-decoration:none;padding:0!important;border:none!important;font-size:.9rem!important;}
.mobile-lang a.on{color:#14b8a6!important;font-weight:700;}

/* 目前頁面的導覽狀態 */
.blog-nav-links a.active{color:#14b8a6;}

/* ── 文章頁排版精緻化 ── */
.article-wrap{font-size:1rem;}
.article-wrap p,.article-wrap li{line-height:1.95;}
.article-wrap h2{margin-top:3rem;letter-spacing:-0.005em;}
.article-wrap h2:first-child{margin-top:0;}
.article-wrap a{
  text-decoration:underline;text-decoration-color:rgba(13,148,136,.35);text-underline-offset:3px;
  transition:text-decoration-color .15s,color .15s;
}
.article-wrap a:hover{text-decoration-color:#0d9488;}
.article-wrap blockquote{
  margin:1.5rem 0;padding:.8rem 1.25rem;border-left:4px solid #d6d3d1;color:#57534e;
  background:#f5f5f4;border-radius:0 .7rem .7rem 0;font-style:italic;
}
.article-wrap hr{border:none;border-top:1px solid #e7e5e4;margin:2.5rem 0;}
.callout{box-shadow:0 2px 10px rgba(13,148,136,.07);}
.article-cta{box-shadow:0 18px 48px rgba(28,25,23,.18);}

/* 「更多攻略」區 */
.more-posts{background:#f5f5f4;border-top:1px solid #e7e5e4;padding:3rem 1.5rem;}
.more-posts-inner{max-width:900px;margin:0 auto;}
.more-posts-inner h2{font-family:'Noto Serif TC',serif;font-weight:900;font-size:1.35rem;color:#1c1917;margin:0 0 1.25rem;}
.more-posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
@media(max-width:680px){.more-posts-grid{grid-template-columns:1fr;}}
.more-post{display:flex;gap:.8rem;align-items:center;background:white;border:1px solid #e7e5e4;border-radius:.9rem;padding:.7rem;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s;}
.more-post:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(28,25,23,.1);border-color:rgba(13,148,136,.3);}
.more-post img{width:72px;height:54px;object-fit:cover;border-radius:.55rem;flex-shrink:0;}
.more-post-tag{font-size:.68rem;font-weight:700;color:#0f766e;letter-spacing:.06em;margin-bottom:.15rem;}
.more-post-title{font-size:.82rem;font-weight:700;line-height:1.45;color:#1c1917;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* ── 行程頁細節 ── */
.badge-pill{backdrop-filter:blur(10px);}
.schedule-item{transition:background .15s;border-radius:.5rem;padding-left:.5rem;padding-right:.5rem;margin:0 -.5rem;}
.schedule-item:hover{background:rgba(255,255,255,.04);}
.include-item,.highlight-item{padding:.15rem 0;}
.other-card{transition:transform .25s,border-color .25s,box-shadow .25s;}
.other-card:hover{border-color:rgba(20,184,166,.35);box-shadow:0 14px 36px rgba(0,0,0,.35);}
.carousel-track img{border:1px solid rgba(255,255,255,.06);}

/* ── 頁尾細節 ── */
footer a,.blog-footer a{transition:color .15s;}

/* ── 圖片載入的柔和感 ── */
.trip-card-img,.blog-card-img,.other-card-img{background:#e7e5e4;}
.trip-card-img img,.blog-card-img img,.other-card-img img{display:block;}

/* ── WhatsApp 浮動視窗（SSR 頁通用；與 guides.css 內定義一致）── */
.wa-widget{position:fixed;right:22px;bottom:22px;z-index:9999;font-family:'Noto Sans TC',sans-serif;}
.wa-float-btn{width:58px;height:58px;border-radius:50%;border:0;background:#25d366;color:white;font-size:1.55rem;cursor:pointer;box-shadow:0 12px 35px rgba(0,0,0,.32);transition:transform .2s ease,box-shadow .2s ease;}
.wa-float-btn:hover{transform:translateY(-2px);box-shadow:0 16px 42px rgba(0,0,0,.36);}
.wa-panel{position:absolute;right:0;bottom:76px;width:min(360px,calc(100vw - 32px));overflow:hidden;color:#1c1917;background:#f7f3ea;border-radius:18px;box-shadow:0 22px 70px rgba(0,0,0,.38);display:none;}
.wa-panel.open{display:block;animation:waIn .22s ease;}
@keyframes waIn{from{opacity:0;transform:translateY(8px) scale(.98);}to{opacity:1;transform:none;}}
.wa-header{position:relative;display:flex;align-items:center;gap:12px;padding:14px 16px;color:white;background:#164e47;}
.wa-avatar{width:48px;height:48px;flex-shrink:0;object-fit:cover;border-radius:50%;border:1px solid rgba(255,255,255,.25);}
.wa-head-text{padding-right:28px;}
.wa-brand{font-size:1rem;font-weight:700;line-height:1.25;}
.wa-reply{margin-top:3px;color:rgba(255,255,255,.82);font-size:.78rem;line-height:1.4;}
.wa-close{position:absolute;right:12px;top:9px;border:0;color:rgba(255,255,255,.82);background:transparent;font-size:1.55rem;line-height:1;cursor:pointer;}
.wa-body{min-height:205px;padding:30px 18px;background:radial-gradient(circle at 18% 20%,rgba(0,0,0,.04) 0 1px,transparent 2px),radial-gradient(circle at 72% 38%,rgba(0,0,0,.035) 0 1px,transparent 2px),radial-gradient(circle at 36% 78%,rgba(0,0,0,.03) 0 1px,transparent 2px),#f7f3ea;background-size:44px 44px,58px 58px,52px 52px,auto;}
.wa-message{padding:14px 16px;color:#3f3f46;background:#dcf8c6;border-radius:12px;line-height:1.75;font-size:.94rem;box-shadow:0 1px 0 rgba(0,0,0,.04);}
.wa-footer{padding:16px;background:white;text-align:center;}
.wa-cta{display:flex;align-items:center;justify-content:center;gap:.55rem;padding:13px 20px;color:white;background:#25d366;border-radius:999px;text-decoration:none;font-weight:700;transition:background .2s ease,transform .2s ease;}
.wa-cta::before{content:'☏';font-size:1.15rem;}
.wa-cta:hover{background:#1fbd5a;transform:translateY(-1px);}
.wa-status{display:flex;align-items:center;justify-content:center;gap:.35rem;margin-top:12px;color:#57534e;font-size:.82rem;}
.wa-dot{width:10px;height:10px;display:inline-block;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12);}

/* guides 頁語言切換改為連結後的樣式 */
.guides-lang a{border:0;padding:.35rem .6rem;color:#d6d3d1;background:transparent;cursor:pointer;text-decoration:none;font-size:.85rem;display:inline-block;transition:background .15s,color .15s;}
.guides-lang a.active{color:white;background:rgba(255,255,255,.14);}
.guides-lang a:hover{color:white;}

/* ── 減少動態偏好 ── */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
  .reveal{opacity:1!important;transform:none!important;}
  .gallery-track{animation:none!important;}
}

/* ── 行程頁側欄：出團時段 ── */
.sidebar-sessions{padding:0 1.4rem 1.1rem;}
.sidebar-sessions .ss-title{font-size:0.78rem;font-weight:700;color:#a8a29e;letter-spacing:0.05em;padding:0.65rem 0 0.35rem;border-top:1px solid rgba(255,255,255,0.06);}
.sidebar-sessions .ss-item{padding:0.45rem 0;border-bottom:1px dashed rgba(255,255,255,0.08);}
.sidebar-sessions .ss-item:last-child{border-bottom:none;}
.sidebar-sessions .ss-row{display:flex;justify-content:space-between;align-items:baseline;gap:0.6rem;font-size:0.85rem;}
.sidebar-sessions .ss-name{color:#14b8a6;font-weight:700;white-space:nowrap;}
.sidebar-sessions .ss-val{color:white;font-variant-numeric:tabular-nums;text-align:right;}
.sidebar-sessions .ss-price{text-align:right;color:white;font-weight:900;font-size:0.9rem;font-variant-numeric:tabular-nums;margin-top:0.1rem;}
.sidebar-sessions .ss-price small{color:#a8a29e;font-weight:400;font-size:0.7rem;}
.sidebar-sessions .ss-note{font-size:0.72rem;color:#a8a29e;line-height:1.55;margin-top:0.2rem;}

/* 行程時間表：時段子標題 */
.schedule-session-hd{font-size:0.92rem;font-weight:700;color:#14b8a6;margin:1.4rem 0 0.35rem;padding-left:0.1rem;letter-spacing:0.02em;}
.schedule-session-hd:first-of-type{margin-top:0.4rem;}
