:root{
  --brand:#0ea5e9; --text:#111; --muted:#6b7280; --bg:#fafafa; --border:#e5e7eb;
  --radius:12px; --container:1200px;
}

/* ===== 基底（含自適應字體） ===== */
*{box-sizing:border-box}
html{
  /* 手機至少16px，隨螢幕放大，上限約18.5px */
  font-size: clamp(16px, 1.1vw + 10px, 18.5px);
}
html,body{
  margin:0; padding:0;
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans TC",Arial,sans-serif;
  line-height:1.7;  /* 放大字體後行距稍微加寬 */
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* ===== 共用字級（用 rem 會隨基準字體一起放大） ===== */
.section-title{font-size:1.5rem;font-weight:800;margin:32px 0 16px}
.muted{color:var(--muted);font-size:0.95rem}
.btn{display:inline-block;background:var(--text);color:#fff;padding:0.65rem 0.9rem;border-radius:10px;font-size:1rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ===== Header / Nav ===== */
.site-header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:50}
.header-inner{display:flex;align-items:center;gap:1rem;height:4.2rem}
.logo{font-weight:900;letter-spacing:1px;font-size:1.1rem}
.logo .brand{color:var(--brand)}
.search{flex:1}
.search input{
  width:100%; height:2.5rem;
  border:1px solid var(--border); border-radius:999px;
  padding:0 0.9rem; outline:none; font-size:1rem;
}
.actions{display:flex;gap:1rem;align-items:center}
.primary{background:#fff;border-bottom:1px solid var(--border)}
.primary .nav-inner{display:flex;gap:1.2rem;justify-content:center;align-items:center;height:3.2rem}
.primary a{padding:0.35rem 0.6rem;border-radius:8px;font-size:1rem}
.primary a:hover{background:#f3f4f6}

/* ===== 主內容：Hero + Tiles ===== */
.page{padding-top:16px}
.hero-slim{
  position:relative; min-height:360px;
  display:flex; align-items:flex-end; padding:24px;
  background:url(/public/hero.jpg) center/cover no-repeat, #ddd;
  border-bottom:1px solid var(--border)
}
.hero-title{font-size:2rem;font-weight:800;margin:0 0 6px}
.hero-note{color:var(--muted);margin:0 0 8px;font-size:0.95rem}

.tiles{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin:24px 0}
.tile{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:transform .15s}
.tile:hover{transform:translateY(-2px)}
.tile .thumb{aspect-ratio:1/1;object-fit:cover;width:100%}
.tile .caption{display:block;padding:10px 12px;font-size:1rem}

/* ===== Finder Stepper ===== */
.center-wrap{min-height:calc(100vh - 160px);display:flex;align-items:center}
.stepper{width:100%;max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.step-title{font-size:1.375rem;font-weight:800;margin-bottom:12px;text-align:center}
.step-indicator{text-align:center;color:var(--muted);margin-bottom:12px;font-size:0.95rem}
.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.choice-btn{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fff;cursor:pointer;font-size:1rem}
.choice-btn:hover,.choice-btn.active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,165,233,.15)}
.step-actions{display:flex;justify-content:space-between;margin-top:16px}

/* ===== Footer ===== */
.site-footer{border-top:1px solid var(--border);padding:24px 0;background:#fff;margin-top:40px}
.site-footer .links{display:flex;gap:20px;justify-content:center;margin-bottom:8px;font-size:1rem}
.lang-switch{display:flex;gap:8px;justify-content:center;margin-top:8px}
.lang-switch button{border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:0.95rem}
.lang-switch button.active{border-color:var(--brand)}
.copy{text-align:center;color:var(--muted);font-size:0.9rem;margin-top:8px}

/* ===== RWD ===== */
@media (max-width:1280px){ .tiles{grid-template-columns:repeat(3,1fr)} }
@media (max-width:1024px){
  .tiles{grid-template-columns:repeat(2,1fr)}
  .primary .nav-inner{gap:0.8rem}
}
@media (max-width:640px){
  .tiles{grid-template-columns:1fr}
  .hero-slim{min-height:220px;padding:16px}
  .choices{grid-template-columns:1fr}
  .logo{font-size:1rem}
  .primary .nav-inner{height:3rem}
}

/* === Mobile layout fixes === */

/* 1) Tiles：更早改成 2 欄，超小螢幕才 1 欄 */
@media (max-width: 900px) {
  .tiles { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}
@media (max-width: 480px) {
  .tiles { grid-template-columns: 1fr; gap: 10px; }
}

/* 2) Tile 圖片不要太巨大，圓角跟間距縮小一點 */
.tile { border-radius: 10px; }
.tile .thumb { aspect-ratio: 1 / 1; width: 100%; object-fit: cover; }
.tile .caption { padding: 8px 10px; font-size: 0.95rem; }

/* 3) Hero 在手機更扁、字體跟著縮 */
@media (max-width: 640px) {
  .hero-slim { min-height: 180px; padding: 14px; }
  .hero-title { font-size: clamp(1.4rem, 5vw + 0.6rem, 1.8rem); }
  .hero-note  { font-size: 0.9rem; }
}

/* 4) 導覽列：手機變成可水平滑動，不要擠到換行 */
@media (max-width: 900px) {
  .primary .nav-inner {
    overflow-x: auto;
    white-space: nowrap;
    gap: 0.7rem;
    padding: 0 8px;
    scroll-snap-type: x mandatory;
  }
  .primary a {
    flex: 0 0 auto;
    scroll-snap-align: start;
    font-size: 0.95rem;
    padding: 0.35rem 0.55rem;
  }
}

/* 5) Header 搜尋框在手機縮短一點 */
@media (max-width: 640px) {
  .header-inner { gap: 0.7rem; height: 3.8rem; }
  .search input { height: 2.2rem; font-size: 0.95rem; }
  .logo { font-size: 1rem; }
}

/* 6) 容器邊距在超小螢幕再收一點，避免被貼邊 */
@media (max-width: 480px) {
  .container { padding: 0 14px; }
}

/* === cart === */
.cart-layout{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:32px}
.cart-item{display:grid;grid-template-columns:88px 1fr auto;gap:12px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:12px;margin-bottom:12px}
.cart-item img{width:88px;height:88px;object-fit:cover;border-radius:10px}
.cart-item h4{margin:0 0 6px;font-size:1rem}
.cart-meta{color:var(--muted);font-size:0.95rem}
.qty{display:flex;align-items:center;gap:8px}
.qty button{width:28px;height:28px;border:1px solid var(--border);background:#fff;border-radius:6px;cursor:pointer}
.item-price{text-align:right}
.item-price .line{display:block}
.cart-summary{border:1px solid var(--border);border-radius:12px;background:#fff;padding:16px;height:fit-content}
.cart-row{display:flex;justify-content:space-between;margin:8px 0}
.cart-total{font-weight:800}
.remove{color:#c0392b;cursor:pointer;font-size:0.95rem}

@media (max-width: 900px){
  .cart-layout{grid-template-columns:1fr}
  .item-price{text-align:left}
}

/* policy pages */
.policy { max-width: 860px; }
.policy h3 { margin-top: 20px; margin-bottom: 8px; font-weight: 800; }
.policy p, .policy li { font-size: 1rem; }
.policy details { border:1px solid var(--border); border-radius:10px; background:#fff; padding:10px 12px; margin:10px 0; }
.policy summary { cursor:pointer; font-weight:700; }

/* === Hero Dual (兩半全幅輪播) === */
.hero-dual{
  padding: 16px 0 22px;         /* 與上/下內容留一點距離 */
  background: transparent;      /* 不要灰底 */
  border-bottom: 1px solid var(--border);
}
.hero-dual .hero-title{ margin:0 0 6px; }
.hero-dual .hero-note{ margin:0 0 10px; color:var(--muted); }

.dual-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* 每半塊都是圖片視窗 */
.dual-panel{
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(0,0,0,.03);
}

/* 固定高度的圖片視窗（根據裝置調整） */
.dual-viewport{ height: 300px; }
.dual-track{
  display: flex;
  height: 100%;
  transition: transform .35s ease;
}
.dual-slide{
  flex: 0 0 100%;
  height: 100%;
}
.dual-slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 疊在圖片上的標題與左右鈕 */
.dual-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 10px;
  pointer-events: none; /* 讓按鈕之外的區域不擋點擊 */
}
.dual-overlay h3{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
  pointer-events: auto;
}
.dual-nav{ display: flex; gap: 8px; pointer-events: auto; }
.dual-nav .d-prev,
.dual-nav .d-next{
  width: 34px; height: 34px;
  border: 1px solid rgba(255,255,255,.6);
  background: rgba(0,0,0,.35);
  color: #fff;
  border-radius: 8px;
  backdrop-filter: blur(2px);
  cursor: pointer;
}

/* RWD */
@media (max-width: 1024px){
  .dual-grid{ grid-template-columns: 1fr; }
  .dual-viewport{ height: 240px; }
}
@media (max-width: 640px){
  .dual-viewport{ height: 200px; }
}

/* 隱藏商品價格 */
.price,
.product-price,
span[class*="price"],
div[class*="price"] {
    display: none !important;
}

/* 隱藏分類頁商品卡片上的金額 */
.product-meta .pill { 
  display: none !important; 
}

/* ==== Others dropdown (global) ==== */
.others-dropdown { position: relative; }
.others-trigger{
  background: transparent; border: 0; cursor: pointer; font: inherit;
  padding: 8px 6px; display: inline-flex; align-items: center; gap: 6px;
}
.others-trigger .caret{ font-size:12px; line-height:1; }
.others-menu{
  display:none; list-style:none; margin:0; padding:6px;
  position:absolute; top:calc(100% + 8px); left:0; min-width:200px;
  background:#fff; border:1px solid #eee; border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,.08); z-index:1000;
}
.others-menu a{
  display:block; padding:10px 12px; border-radius:8px; text-decoration:none; color:#111;
}
.others-menu a:hover,.others-menu a:focus{ background:#f3f4f6; outline:0; }
@media(hover:hover) and (pointer:fine){
  .others-dropdown:hover .others-menu{ display:block; }
}

/* ==== Pager (global) ==== */
.pager{
  display:flex; gap:8px; align-items:center; justify-content:center;
  padding:24px 0; margin-top:24px;
}
.pager a,.pager span{
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  padding:0 10px; border:1px solid #e5e7eb; border-radius:8px; text-decoration:none; color:#111;
  background:#fff;
}
.pager a:hover{ background:#f3f4f6; }
.pager .is-current{ background:#111; color:#fff; border-color:#111; }
.pager .is-disabled{ opacity:.4; pointer-events:none; }
