/* combined.css — 2026-09-29 批C：9支主題CSS合併，保留原始載入順序 app,kitchen,dish,card,design,mag,banner,wine,mix */

/* ===== app.css ===== */
:root{--bg:#FBF6EE;--surface:#F7F1E8;--surface-2:#F3EBDF;--ink:#221A17;--ink-2:#7A6A60;--line:#E6DCCB;--primary:#7A1F3D;--primary-deep:#5E1630;--primary-soft:#F6E7EC;--gold:#8A6D2E;--gold-soft:#F5EBD3;--r:12px;--r-img:8px;--shadow:none;--float:0 8px 24px rgba(34,26,23,.10);--serif:"Noto Serif TC","PingFang TC",serif;--sans:"Noto Serif TC","PingFang TC","Microsoft JhengHei",serif;--num:"Fraunces","Noto Serif TC",serif;--t:200ms}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.75;letter-spacing:.02em;overflow-x:hidden;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration: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}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;line-height:1.35}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 16px}
.ey{display:block;font-family:var(--num);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.sec{padding:48px 0;border-top:1px solid var(--line)}
.sh{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}
.sh h2{font-size:26px;margin-top:4px}
.sh .ey span{color:var(--ink-2);margin-right:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:8px;background:var(--primary);color:#fff;font-weight:600;letter-spacing:.04em;transition:background var(--t)}
.btn:hover{background:var(--primary-deep)}
.lk{display:inline-flex;align-items:center;min-height:44px;font-weight:500;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--primary);transition:text-decoration-color var(--t)}
.lk:hover{text-decoration-color:var(--gold)}
.ob{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 16px;border:1px solid var(--ink);border-radius:8px;font-weight:500;gap:6px}
.ob:hover{border-color:var(--primary);color:var(--primary)}
/* header */
.hd{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--line)}
.hd .wrap{display:flex;align-items:center;height:56px;gap:24px}
.logo{display:flex;align-items:center;gap:10px;min-height:44px}
.logo img{height:38px;width:auto}
.logo span{font-family:var(--serif);font-size:14px;color:var(--primary);white-space:nowrap}
.nav{display:none;flex:1;gap:4px}
.nav a{position:relative;display:flex;align-items:center;height:56px;padding:0 12px;letter-spacing:.04em;font-weight:500}
.nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--primary);transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
.hr{margin-left:auto;display:flex;align-items:center;gap:12px}
.city{position:relative;display:none}
.city>button{display:flex;align-items:center;height:44px;padding:0 12px;letter-spacing:.04em;font-weight:500;gap:4px}
.cm{position:absolute;right:0;top:52px;width:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--float);padding:12px;display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.city.o .cm{display:grid}
.cm a{padding:8px 12px;border-radius:6px;font-size:14px;min-height:44px;display:flex;align-items:center}
.cm a:hover{background:var(--primary-soft);color:var(--primary)}
.ic{width:44px;height:44px;display:flex;align-items:center;justify-content:center}
.ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.hd .btn{display:none;height:40px;padding:0 20px}
/* tab bar */
.tb{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom)}
.tb a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:56px;font-size:11px;color:var(--ink-2)}
.tb a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tb a[aria-current]{color:var(--primary)}
/* gate */
.gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px;text-align:center}
.gate.x{display:none}
.gate .in{max-width:520px;border:1px solid var(--gold);padding:40px 24px;position:relative}
.gate .in::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);pointer-events:none}
.gate img{height:56px;width:auto;margin:0 auto 24px}
.gate h2,.gate .gt-h{font-size:26px;margin:8px 0 12px;font-family:var(--serif);font-weight:400;line-height:1.3;color:var(--ink)}
.gate p{color:var(--ink-2);font-size:14px;margin-bottom:24px}
.gate .ac{display:flex;gap:24px;justify-content:center;align-items:center;flex-wrap:wrap}
/* hero */
.hero{padding:40px 0 48px}
.hero .wrap{display:grid;gap:32px}
.hero h1{font-size:34px;margin:8px 0 12px}
.hero h1 small{display:block;font-family:var(--num);font-size:15px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-top:8px}
.hero .sl{font-size:17px;color:var(--ink-2);margin-bottom:24px}
.hero .ac{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.plate{position:relative;width:min(100%,320px);margin:0 auto;padding:12px}
.plate::before{content:"";position:absolute;inset:0;border:1px solid var(--gold);border-radius:var(--r)}
.plate::after{content:"";position:absolute;left:-8px;top:24px;width:1px;height:calc(100% - 48px);background:var(--gold)}
.plate .ph{aspect-ratio:4/5}
.plate .tag{position:absolute;right:24px;bottom:24px;background:var(--bg);border:1px solid var(--line);padding:4px 12px;font-size:13px;font-family:var(--num);letter-spacing:.08em}
/* photos */
.ph{position:relative;aspect-ratio:4/5;background:var(--surface-2);border-radius:var(--r-img);overflow:hidden}
.ph.sq{aspect-ratio:1/1}
.ph img{width:100%;height:100%;object-fit:cover;filter:blur(12px);opacity:0;transition:filter 400ms,opacity 400ms,transform var(--t)}
.ph img.ok{filter:blur(0);opacity:1}
/* specials */
.spc{padding:24px 0 8px}
.rail{position:relative}
.rail::after{display:none}
.track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 16px 8px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.track::-webkit-scrollbar{display:none}
.sc{scroll-snap-align:start;flex:0 0 140px;width:140px}
.sc p{font-size:13px;line-height:1.6;color:var(--ink-2);margin-top:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sc b{color:var(--ink);font-weight:500}
/* filter row */
.fr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.fr .lb{font-size:13px;color:var(--ink-2);margin-right:4px}
.sel{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 4px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:14px}
.sel button{width:28px;height:28px;color:var(--ink-2)}
.sel button:hover{color:var(--primary)}
.fr .ob{margin-left:auto}
/* dish cards */
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 12px}
.dish{display:block;min-width:0}
.dish .ph img{transition:transform var(--t),filter 400ms,opacity 400ms}
.dish:hover .ph img{transform:scale(1.03)}
.dish:hover .nm{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--gold)}
.chip{position:absolute;left:8px;top:8px;background:var(--primary);color:#fff;font-size:12px;font-weight:500;letter-spacing:.06em;padding:2px 8px;border-radius:4px;line-height:1.6}
.fav{position:absolute;right:4px;top:4px;width:36px;height:36px;color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;text-shadow:0 0 4px rgba(0,0,0,.4)}
.fav.y{color:var(--gold)}
.play{position:absolute;right:8px;bottom:8px;width:28px;height:28px;border-radius:4px;background:rgba(34,26,23,.7);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;padding-left:2px}
.nm{font-size:16px;margin-top:10px;display:flex;align-items:center;gap:6px}
.flag{width:18px;height:12px;border:1px solid var(--line);flex:none}
.sp{font-size:13px;color:var(--ink-2);line-height:1.6}
.pr{font-size:13px;color:var(--ink-2);line-height:1.6;margin-top:2px}
.pr b{font-family:var(--num);font-size:17px;font-weight:600;color:var(--ink);letter-spacing:0}
.st{font-size:12px;display:inline-flex;align-items:center;gap:6px;margin-top:4px;color:var(--ink-2)}
.st.on::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.sub{display:flex;align-items:center;justify-content:space-between;margin:32px 0 16px}
.sub h3{font-size:20px}
.sub:first-of-type{margin-top:0}
/* kitchens */
.kg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kt{background:var(--bg);padding:16px 8px;text-align:center;min-height:72px;display:flex;flex-direction:column;justify-content:center;transition:background var(--t)}
.kt:hover{background:var(--surface)}
.kn{font-family:var(--serif);font-weight:600;font-size:17px}
.ks{font-size:12px;color:var(--ink-2);letter-spacing:.06em}
/* bento */
.bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bc{display:block;min-width:0}
.bc .ph{aspect-ratio:3/4}
.bc .ph img{object-position:50% 20%}
.bc.big{grid-column:1/-1}
.bc.big .ph{aspect-ratio:4/5}
.bc .bt{padding-top:8px}
.bc:hover .ph img{transform:scale(1.03)}
/* editorial */
.eds{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.ed{display:block;padding:20px 0;border-top:1px solid var(--line)}
.ed:last-child{border-bottom:1px solid var(--line)}
.ed h3{font-size:19px;margin:6px 0 6px;transition:color var(--t)}
.ed:hover h3{color:var(--primary)}
.ed p{color:var(--ink-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* steps */
.steps{display:grid;grid-template-columns:minmax(0,1fr);gap:0;counter-reset:s}
.step{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}
.step i{font-family:var(--num);font-style:normal;font-size:28px;font-weight:600;color:var(--gold);line-height:1}
.step h3{font-size:17px}
.step p{font-size:14px;color:var(--ink-2)}
.trust{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin-top:24px;border-top:1px solid var(--gold)}
.trust div{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:baseline}
.trust b{font-family:var(--serif);font-weight:600;font-size:16px;white-space:nowrap}
.trust span{font-size:14px;color:var(--ink-2)}
/* faq */
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font-family:var(--serif);font-weight:600;font-size:17px;min-height:56px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";color:var(--gold);font-family:var(--num);font-size:20px;flex:none}
.faq details[open] summary::after{content:"－"}
.faq .an{padding:0 0 20px;color:var(--ink-2);font-size:15px;max-width:720px}
/* footer */
.ft{border-top:1px solid var(--line);padding:32px 0 24px;font-size:13px;color:var(--ink-2)}
.ft a:hover{color:var(--primary)}
.ft .bt{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}
/* drawer */
.ov{position:fixed;inset:0;z-index:60;background:rgba(34,26,23,.32);opacity:0;pointer-events:none;transition:opacity var(--t)}
.dr{position:fixed;z-index:61;background:var(--surface);left:0;right:0;bottom:0;max-height:85vh;border-radius:var(--r) var(--r) 0 0;box-shadow:var(--float);transform:translateY(100%);transition:transform 250ms;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}
body.df .ov{opacity:1;pointer-events:auto}
body.df .dr{transform:none}
.dr .dh{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 12px 24px;border-bottom:1px solid var(--line)}
.dr .dh h3{font-size:18px}
.dr .db{overflow-y:auto;padding:8px 24px;flex:1}
.dr .df{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:24px;align-items:center;justify-content:space-between}
.dr fieldset{border:0;padding:16px 0;border-bottom:1px solid var(--line)}
.dr legend{font-family:var(--serif);font-weight:600;font-size:15px;padding:0 0 8px}
.dr label{display:flex;align-items:center;gap:8px;min-height:40px;font-size:14px}
.dr .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.dr input[type=checkbox],.dr input[type=radio]{width:18px;height:18px;accent-color:var(--primary)}
.dr input[type=range]{width:100%;accent-color:var(--primary)}
/* reveal */
.rv{opacity:0;transform:translateY(12px);transition:opacity 250ms var(--d,0ms),transform 250ms var(--d,0ms)}
.rv.in{opacity:1;transform:none}
@supports (animation-timeline:view()){.rv{animation:up linear both;animation-timeline:view();animation-range:entry 0% entry 30%;transition:none}.rv.in{opacity:1}@keyframes up{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.rv{opacity:1;transform:none}.ph img{filter:none}}
/* breakpoints */
@media (min-width:768px){
body{font-size:16px}
.wrap{padding:0 32px}
.sec{padding:64px 0}
.sh h2{font-size:32px}
.hero{padding:64px 0}
.hero .wrap{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center}
.hero h1{font-size:44px}
.plate{width:min(100%,360px);margin:0 0 0 auto}
.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}
.kg{grid-template-columns:repeat(6,minmax(0,1fr))}
.bento{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.bc.big{grid-column:1/3;grid-row:1/3;display:flex;flex-direction:column}
.bc.big .ph{aspect-ratio:auto;height:100%;flex:1;min-height:0}
.eds{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.ed:nth-last-child(2){border-bottom:1px solid var(--line)}
.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;border-top:1px solid var(--line)}
.step{grid-template-columns:minmax(0,1fr);border-top:0}
.trust{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.trust div{flex-direction:column;gap:4px}
.sc{flex-basis:180px;width:180px}
.rail::after{display:none}
.dr{left:auto;top:0;bottom:0;width:400px;max-height:none;border-radius:0;transform:translateX(100%)}
}
@media (min-width:1024px){
body{padding-bottom:0}
.tb{display:none}
.nav{display:flex}
.city{display:block}
.hd .btn{display:inline-flex}
.hd .ic{display:none}
.grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.bento{grid-template-columns:2fr 1fr 1fr;grid-template-rows:auto auto}
.bc.big{grid-column:1;grid-row:1/3}
.bc.big .ph{aspect-ratio:auto;height:100%}
.bc.big{display:flex;flex-direction:column}
.bc.big .ph{flex:1;min-height:320px}
.eds{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px}
.ed{border-bottom:1px solid var(--line)}
.hero h1{font-size:64px;line-height:1.15;font-variation-settings:"opsz" 144}.hero .sl{font-size:20px;max-width:34ch}.hero{padding:56px 0}
}
@media (min-width:1440px){.wrap{max-width:1280px}.hero h1{font-size:76px}}
/* theme extras */
.empty{border:1px dashed var(--line);border-radius:var(--r-img);padding:32px 16px;text-align:center;color:var(--ink-2);font-size:14px}
.empty b{display:block;font-family:var(--serif);font-size:18px;color:var(--ink);margin-bottom:4px}
.page{padding:40px 0 64px}
.page h1{font-size:28px;margin-bottom:16px}
.page .entry{max-width:72ch}
.page .entry p{margin-bottom:16px}
.page .entry h2{font-size:22px;margin:32px 0 12px}
.page .entry img{border-radius:var(--r-img)}
.page .list{display:grid;gap:0}
.page .list .ed{padding:16px 0}
.pgn{display:flex;gap:16px;margin-top:32px}
.pgn a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.sform{display:flex;gap:8px;max-width:480px;margin:16px 0 32px}
.sform input{flex:1;min-width:0;height:48px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font:inherit;background:var(--surface)}
.sform button{height:48px;padding:0 20px;background:var(--primary);color:#fff;border-radius:8px;font-weight:600}
.dish .st.off{color:var(--ink-2)}
@media (min-width:768px){.page h1{font-size:36px}}
.ap-wet{color:var(--primary);font-size:1.15em}
.vd{position:absolute;right:8px;bottom:8px;width:28px;height:28px;border-radius:50%;background:rgba(34,26,23,.6);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;padding-left:2px}
.noimg{position:absolute;inset:0;background:linear-gradient(135deg,var(--surface-2),var(--gold-soft))}

/* 截圖用：?nogate 時關閉所有過場，避免 headless 抓到 blur 中途態 */
.noanim *,.noanim *::before,.noanim *::after{transition:none!important;animation:none!important}
.noanim .ph img{filter:none!important;opacity:1!important}

/* ===== kitchen.css ===== */
/* kitchen.css — 廚房頁（product_cat）：麵包屑、篩選面板、chip、橫式列表卡、行政區格、分頁；首頁廚房格補丁 */
/* 首頁 19 廚房格：最後一列殘格不留灰底（背景透明、只畫 cell 邊框） */
.kg{background:transparent;gap:0;border:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.kg .kt{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
/* breadcrumb + intro */
.kcrumb{font-size:13px;color:var(--ink-2);padding:16px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.kcrumb a:hover{color:var(--primary)}
.kintro{padding:16px 0 24px}
.kintro h1{font-size:26px;margin-top:4px}
.kintro h1 small{display:block;font-family:var(--num);font-size:14px;letter-spacing:.12em;color:var(--primary);font-weight:600;margin-top:8px}
.kintro p{margin-top:16px;color:var(--ink-2);max-width:64ch}
/* layout */
.klay{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.kmain{min-width:0}
/* filter panel */
.kp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.kp h3{font-size:16px;display:flex;justify-content:space-between;align-items:center}
.kp-g{padding:16px 0;border-top:1px solid var(--line)}
.kp-g:first-of-type{border-top:0;padding-top:12px}
.kp-t{font-size:13px;color:var(--ink-2);letter-spacing:.04em;margin-bottom:8px}
.kp-seg{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.kp-seg label{position:relative;min-height:44px;display:flex;align-items:center;justify-content:center;font-weight:500;cursor:pointer}
.kp-seg label+label{border-left:1px solid var(--line)}
.kp-seg input{position:absolute;opacity:0;inset:0;margin:0}
.kp-seg input:checked+span{color:var(--primary)}
.kp-seg label:has(:checked){background:var(--primary-soft)}
.kp-seg a{position:relative;min-height:44px;display:flex;align-items:center;justify-content:center;font-weight:500;color:inherit}.kp-seg a+a{border-left:1px solid var(--line)}.kp-seg a[aria-current]{background:var(--primary-soft);color:var(--primary)}
.kp-cks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px}
.kp-cks label{display:flex;align-items:center;gap:6px;min-height:36px;font-size:14px;cursor:pointer}
.kp-cks input,.kp-cups input{accent-color:var(--primary);width:16px;height:16px;margin:0}
.kp-nat{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 6px}.kp-nat label{white-space:nowrap}.kp-nat .flag{width:18px;height:13px;margin:0 4px 0 2px;vertical-align:-2px;border-radius:2px}@media (min-width:1024px){.kp-nat{grid-template-columns:repeat(2,minmax(0,1fr))}}
.kp-rng{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;font-size:14px}
.kp-rng>div{display:flex;align-items:center;gap:6px;color:var(--ink-2)}
.kp-rng input[type=number]{width:100%;min-width:0;height:40px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font:inherit;font-family:var(--num);font-weight:600;color:var(--ink);background:var(--surface)}
.kp-cups{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.kp-cups label{position:relative;border:1px solid var(--line);border-radius:8px;min-height:40px;display:flex;align-items:center;justify-content:center;font-family:var(--num);font-weight:600;cursor:pointer}
.kp-cups input{position:absolute;opacity:0;inset:0;margin:0;width:100%;height:100%}
.kp-cups label:has(:checked){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.kp-pr{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kp-pr label{position:relative;border:1px solid var(--line);border-radius:8px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;text-align:center;padding:0 6px}
.kp-pr input{position:absolute;opacity:0;inset:0;margin:0}
.kp-pr label:has(:checked){border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.kp-tg{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;position:relative}
.kp-tg input{position:absolute;opacity:0}
.kp-tg i{width:44px;height:26px;border-radius:13px;background:var(--line);position:relative;transition:background var(--t)}
.kp-tg i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform var(--t)}
.kp-tg input:checked+i{background:var(--primary)}
.kp-tg input:checked+i::after{transform:translateX(18px)}
.kp-act{display:grid;grid-template-columns:1fr auto;gap:12px;padding-top:16px;border-top:1px solid var(--line);align-items:center}
.kp-act .btn{width:100%}
/* mobile drawer */
.kp{position:fixed;left:0;right:0;bottom:0;z-index:70;max-height:85vh;overflow:auto;border-radius:16px 16px 0 0;transform:translateY(104%);transition:transform 250ms;box-shadow:var(--float);padding-bottom:calc(20px + env(safe-area-inset-bottom))}
body.kp-o .kp{transform:none}
.kp-bk{position:fixed;inset:0;background:rgba(34,26,23,.35);z-index:65;opacity:0;pointer-events:none;transition:opacity var(--t)}
body.kp-o .kp-bk{opacity:1;pointer-events:auto}
.kp-x{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;color:var(--ink-2);margin-right:-12px}
/* toolbar */
.kb{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.kb-f{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--line);border-radius:8px;font-weight:500;background:var(--surface);flex:none}
.kb-f:hover{border-color:var(--primary)}
.kb-chips{display:flex;flex-wrap:nowrap;gap:8px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.kb-chips::-webkit-scrollbar{display:none}
.kb-none{font-size:13px;color:var(--ink-2);white-space:nowrap;align-self:center}
.kc{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 4px 0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px}
.kc b{font-weight:500}
.kc a{width:28px;height:28px;font-size:16px;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center}
.kc a:hover{color:var(--primary)}
.kc-all{padding:0 12px;color:var(--ink-2);text-decoration:underline;text-underline-offset:4px}
.kb-sort{margin-left:auto;flex:none}
.kb-sort label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.kb-sort select{font:inherit;font-size:14px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;height:44px;padding:0 12px}
.kcnt{font-size:13px;color:var(--ink-2);padding:12px 0;display:flex;align-items:center;gap:6px}
.kcnt .ey{display:inline}
.kcnt b{font-family:var(--num);color:var(--ink)}
.kclr{margin-top:16px;text-align:center}
/* pagination（細線） */
.kpg{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:32px}
.kpg .page-numbers{min-width:44px;height:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;font-family:var(--num);font-weight:600;font-size:14px;background:var(--surface);transition:border-color var(--t),color var(--t)}
.kpg a.page-numbers:hover{border-color:var(--primary);color:var(--primary)}
.kpg .page-numbers.current{background:var(--primary);border-color:var(--primary);color:#fff}
.kpg .page-numbers.dots{border:0;background:transparent}
/* 橫式列表卡 */
.krows{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.krow{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.krow .ph{aspect-ratio:1/1;border-radius:var(--r-img);overflow:hidden;background:var(--surface-2);margin:0;position:relative}
.krow .ph img{width:100%;height:100%;object-fit:cover;display:block}
.krow .nm{margin-top:0}
.krow .sp b{font-family:var(--num);font-weight:600;color:var(--ink)}
.krow-r{text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.krow-r .pr{margin:0}
.krow:hover .nm{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--gold)}
/* 行政區格 */
.kd{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.kd a{display:flex;flex-direction:column;justify-content:center;min-height:80px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background var(--t)}
.kd a:hover,.kd a[aria-current]{background:var(--surface)}
.kd a[aria-current] strong{color:var(--primary)}
.kd strong{font-family:var(--serif);font-weight:600;font-size:17px}
.kd small{font-size:12px;color:var(--ink-2);letter-spacing:.04em}
/* 食記 3 欄 */
.ked{grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){
.kintro h1{font-size:32px}
.krows{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.kd{grid-template-columns:repeat(4,minmax(0,1fr))}
.ked{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.ked .ed{border-bottom:1px solid var(--line)}
.kb{flex-wrap:wrap}
.kb-chips{flex-wrap:wrap;overflow:visible}
}
@media (min-width:1024px){
.kb-f,.kp-x,.kp-bk{display:none}
.klay{grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.kp{position:sticky;top:72px;left:auto;right:auto;bottom:auto;max-height:calc(100vh - 88px);transform:none;box-shadow:none;border-radius:var(--r);padding-bottom:20px;z-index:1}
.kgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.kd{grid-template-columns:repeat(6,minmax(0,1fr))}
.kintro h1{font-size:36px}
}
@media (min-width:1440px){.kgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ===== J1 文章層：主廚手記列表/單篇（.jn*）、食記（.gd*） ===== */
.jn-head{padding:8px 0 24px;border-bottom:1px solid var(--line);margin-bottom:24px}
.jn-head h1{font-size:28px;margin:6px 0 8px;letter-spacing:-.01em}
.jn-lead{color:var(--ink-2);font-size:15px;max-width:60ch;margin-top:8px}
.jn-meta{display:flex;align-items:center;gap:8px;font-family:var(--num);font-size:13px;color:var(--ink-2);letter-spacing:.04em}
.jn-dt{display:block;margin-top:10px;font-family:var(--num);font-size:12px;color:var(--ink-2);letter-spacing:.06em}
.jn-ph{aspect-ratio:16/9;margin:0 0 14px}
.jn-ph img{transition:filter 400ms,opacity 400ms,transform var(--t)}
.ed.jn-ed{padding:0 0 24px;border-top:0;border-bottom:1px solid var(--line);margin-bottom:24px}
.ed.jn-ed:hover .jn-ph img{transform:scale(1.03)}
.ed.jn-ed h3{font-size:20px;margin:6px 0}
.ed.jn-ed p{font-size:14px;-webkit-line-clamp:2}
.jn-list{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.jn-list .ed:last-child{border-bottom:1px solid var(--line)}
.jn-pgn{margin-top:16px}
.jn-pgn ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.jn-pgn a,.jn-pgn span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;font-family:var(--num);font-weight:600;border:1px solid var(--line);border-radius:var(--r-img);text-decoration:none}
.jn-pgn a:hover{border-color:var(--primary);color:var(--primary)}
.jn-pgn .current{background:var(--primary);color:#fff;border-color:var(--primary)}
.jn-pgn .dots{border:0}
/* 閱讀進度條：header 下方 2px 酒紅，CSS scroll-driven，不支援時 JS 寫 --p */
.jn-bar{position:fixed;top:56px;left:0;right:0;height:2px;z-index:39;pointer-events:none;background:transparent}
.jn-bar i{display:block;height:100%;background:var(--primary);transform-origin:0 50%;transform:scaleX(var(--p,0))}
@supports (animation-timeline:scroll()){.jn-bar i{animation:jn-prog linear both;animation-timeline:scroll(root)}@keyframes jn-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}}
/* 單篇 Kinfolk：16:9 首圖、正文 680 */
.jn-single .jn-head,.gd-single .jn-head{border-bottom:0;margin-bottom:8px;padding-bottom:8px}
.jn-single .jn-head h1{font-size:30px;line-height:1.3}
.jn-hero{aspect-ratio:16/9;margin:8px 0 32px}
.jn-hero img,.gd-hero img,.ed.jn-ed .ph img{transition:filter 400ms,opacity 400ms}
.prose{max-width:680px;font-size:16px;line-height:1.85}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:23px;margin-top:2.2em;padding-top:.6em;border-top:1px solid var(--line);scroll-margin-top:80px}
.prose h3{font-size:19px;margin-top:1.8em}
.prose img{max-width:100%;height:auto;border-radius:var(--r-img)}
.prose a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--primary)}
.prose a:hover{text-decoration-color:var(--gold)}
.prose ul,.prose ol{padding-left:1.4em}
.prose li+li{margin-top:.4em}
.prose hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}
/* pull quote：serif、酒紅左線、金引號 */
.prose blockquote{position:relative;margin:2em 0;padding:8px 0 8px 28px;border-left:2px solid var(--primary);font-family:var(--serif);font-weight:600;font-size:21px;line-height:1.55;color:var(--ink);letter-spacing:-.005em}
.prose blockquote::before{content:"\201C";position:absolute;left:-2px;top:-18px;font-family:var(--num);font-size:56px;line-height:1;color:var(--gold);opacity:.9;background:var(--bg);padding:0 4px}
.prose blockquote p{margin:0}
.prose blockquote cite{display:block;margin-top:10px;font-family:var(--num);font-style:normal;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.jn-more{margin-top:48px}
.jn-more .sh h2{font-size:24px}
/* 食記列表 Monocle 橫向卡：左圖 40% 右文 */
.gd-rows{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.gd-row{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}
.gd-ph{aspect-ratio:16/10;margin:0}
.gd-row:hover .gd-ph img{transform:scale(1.03)}
.gd-body h2{font-size:21px;margin:6px 0 8px;transition:color var(--t)}
.gd-row:hover .gd-body h2{color:var(--primary)}
.gd-body p{color:var(--ink-2);font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* 食記單篇 Time Out：4:3 首圖、eyebrow 縣市＋更新日、左欄 sticky 目錄、手機摺疊 chip */
.gd-upd{color:var(--ink-2);margin-left:12px;letter-spacing:.06em}
.gd-hero{aspect-ratio:4/3;margin:8px 0 20px}
.gd-toc-m{border:1px solid var(--line);border-radius:var(--r-img);margin:0 0 24px;background:var(--surface)}
.gd-toc-m summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;font-family:var(--serif);font-weight:600}
.gd-toc-m summary::-webkit-details-marker{display:none}
.gd-toc-m summary i{font-style:normal;font-family:var(--num);font-size:12px;color:var(--ink-2)}
.gd-toc-m summary::after{content:"＋";color:var(--primary);font-size:18px}
.gd-toc-m[open] summary::after{content:"－"}
.gd-chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 14px}
.gd-chips a{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:999px;font-size:13px;text-decoration:none;background:var(--bg)}
.gd-chips a:hover{border-color:var(--primary);color:var(--primary)}
.gd-lay{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.gd-side{display:none}
.gd-toc ol{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--line)}
.gd-toc li{border-bottom:1px solid var(--line)}
.gd-toc a{display:block;padding:10px 0;font-size:14px;text-decoration:none;color:var(--ink-2);transition:color var(--t)}
.gd-toc a:hover{color:var(--primary)}
.gd-go{margin-top:20px;width:100%;justify-content:center;text-decoration:none}
.gd-prose .gd-ins{max-width:300px;margin:28px auto;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.gd-prose .gd-ins .ey{margin-bottom:10px}
.gd-prose .gd-ins .dish{margin:0}
@media (min-width:768px){
.jn-head h1{font-size:34px}
.jn-single .jn-head h1{font-size:40px}
.jn-list.eds{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.jn-list .ed:nth-last-child(2){border-bottom:1px solid var(--line)}
.gd-row{grid-template-columns:40% minmax(0,1fr);gap:24px;align-items:start}
.gd-body h2{font-size:24px}
.gd-prose .gd-ins{float:right;margin:8px 0 16px 24px;max-width:260px}
.gd-prose::after{content:"";display:table;clear:both}
}
@media (min-width:1024px){
.jn-list.eds,.jn-more .jn-list.eds{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}
.jn-list .ed{border-bottom:1px solid var(--line)}
.jn-single .jn-head{max-width:760px}
.gd-lay{grid-template-columns:260px minmax(0,1fr);gap:48px;align-items:start}
.gd-side{display:block;position:sticky;top:80px}
.gd-toc-m{display:none}
.gd-hero{max-width:100%}
.jn-head h1{font-size:38px}
}
@media (prefers-reduced-motion:reduce){.jn-bar i{animation:none!important;transform:scaleX(var(--p,0))}}
/* KBG 廚房頁導言：縣市場景底圖（酒紅遮罩）＋縣市線稿地圖水印，滿版出血 */
.kintro.kintro-bg{position:relative;margin:0 calc(50% - 50vw) 8px;padding:28px calc(50vw - 50% + 16px) 32px;background-position:center;background-size:cover;background-repeat:no-repeat;color:#FBF6EE;overflow:hidden;isolation:isolate}
.kintro.kintro-bg::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(59,13,31,.66),rgba(59,13,31,.56) 55%,rgba(59,13,31,.74));z-index:-1}
.kintro.kintro-bg .kintro-in{position:relative;max-width:1200px;margin:0 auto}
.kintro.kintro-bg .ey,.kintro.kintro-bg h1,.kintro.kintro-bg p{color:#FBF6EE;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.kintro.kintro-bg .ey{color:#C9A24A}
.kintro.kintro-bg h1 small{color:rgba(251,246,238,.8)}
.kintro.kintro-bg p::before{background:#C9A24A}

@media (min-width:1024px){.kintro.kintro-bg{padding-top:44px;padding-bottom:48px}}
/* ===== S3b：行政區資料區塊 .kdata、食記文末按鈕 .gd-cta、延伸閱讀清單 .jn-links ===== */
.kdata p{font-family:var(--serif);font-size:15px;line-height:1.9;color:var(--ink-2);max-width:64ch;margin-top:12px}
.kdata .sh+p{margin-top:0}
.kdata .sh+p::before{content:"";display:block;width:24px;height:1px;background:var(--gold);margin-bottom:12px}
.kdata-lk{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;font-family:inherit}
.kdata-lk span{color:var(--ink-2);font-size:13px;letter-spacing:.04em}
.kdata-lk a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-color:var(--gold);min-height:32px;display:inline-flex;align-items:center}
.kdata-lk a:hover{color:var(--primary)}
.gd-cta{display:flex;flex-wrap:wrap;gap:12px;margin:2.5em 0 0;padding-top:24px;border-top:1px solid var(--line)}
.gd-cta a{text-decoration:none}
.jn-links .jn-lst{list-style:none;margin:8px 0 0;padding:0;border-top:1px solid var(--gold)}
.jn-links .jn-lst li{border-bottom:1px solid var(--gold);opacity:.95}
.jn-links .jn-lst a{display:block;padding:14px 0;font-family:var(--serif);font-size:17px;text-decoration:none;transition:color var(--t)}
.jn-links .jn-lst a:hover{color:var(--primary)}
.jn-links .jn-lst a::after{content:" →";color:var(--gold)}
/* 手機側邊 16px 由 .wrap 提供，.kdata 不另加 */
@media (min-width:1024px){.kdata p{font-size:16px}}

/* ===== dish.css ===== */
/* ===== 聯繫元件（全站） ===== */
.dis,a[aria-disabled=true]{opacity:.45;pointer-events:none;cursor:default;filter:grayscale(1)}
.tgb{width:40px;height:40px;border:1px solid var(--ink);border-radius:8px;display:none;align-items:center;justify-content:center;color:var(--ink);transition:border-color var(--t),color var(--t)}
.tgb svg,.ob svg,.btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tgb:hover{border-color:var(--primary);color:var(--primary)}
.hd .tgb{display:none}
.tb button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:56px;font-size:11px;color:var(--ink-2);width:100%}
.tb button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ft ul a svg{width:16px;height:16px;vertical-align:-3px;margin-right:4px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cs-ov{position:fixed;inset:0;z-index:70;background:rgba(34,26,23,.32);opacity:0;pointer-events:none;transition:opacity var(--t)}
.cs{position:fixed;z-index:71;left:0;right:0;bottom:0;background:var(--surface);border-radius:var(--r) var(--r) 0 0;box-shadow:var(--float);transform:translateY(100%);transition:transform 250ms;padding-bottom:env(safe-area-inset-bottom)}
body.cso .cs-ov{opacity:1;pointer-events:auto}
body.cso .cs{transform:none}
.cs-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 12px 24px;border-bottom:1px solid var(--line)}
.cs-h h3{font-size:18px}
.cs-b{padding:20px 24px 24px;display:flex;flex-direction:column;gap:12px}
.cs-b .btn,.cs-b .ob{width:100%;height:48px}
.cs-b p{font-size:13px;color:var(--ink-2);text-align:center;margin-top:4px}
@media (min-width:768px){.cs{left:50%;right:auto;bottom:auto;top:50%;width:360px;transform:translate(-50%,-50%) scale(.96);opacity:0;border-radius:var(--r);transition:opacity var(--t),transform var(--t)}body.cso .cs{opacity:1;transform:translate(-50%,-50%)}}
@media (min-width:1024px){.hd .tgb{display:inline-flex}}

/* ===== 料理頁 ===== */
body.is-dish .tb{display:none}
body.is-dish{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
.pd-bc{padding:16px 0 0;font-size:13px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pd-bc a:hover{color:var(--primary)}
.pd-bc span{color:var(--gold)}
.pd-bc strong{font-weight:500;color:var(--ink)}
.pd{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;padding:16px 0 40px}
.pd-gal,.pd-info{min-width:0}
.pd-main{aspect-ratio:4/5}
.pd-main .chip{left:12px;top:12px;z-index:2}
.pd-thumbs{display:flex;gap:8px;margin-top:8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pd-thumbs::-webkit-scrollbar{display:none}
.pd-thumbs button{flex:0 0 calc((100% - 16px)/3);aspect-ratio:4/5;scroll-snap-align:start;border-radius:var(--r-img);overflow:hidden;position:relative;background:var(--surface-2);border:1px solid transparent;transition:border-color var(--t)}
.pd-thumbs button img{width:100%;height:100%;object-fit:cover;display:block}
.pd-thumbs button[aria-current=true]{border-color:var(--primary)}
.pd-thumbs .pd-vd img{opacity:.6}
.pd-thumbs .pd-vd .play{right:auto;bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;font-size:14px}
.pd-vdl{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-size:12px;color:#fff;text-shadow:0 0 4px rgba(0,0,0,.6)}
.pd-info .ey.zh{font-family:var(--sans);font-weight:500;letter-spacing:.08em}
.pd-info h1{font-size:24px;margin:8px 0 20px;line-height:1.35}
.pd-spec{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pd-spec div{padding:12px 4px;text-align:center;border-left:1px solid var(--line);min-width:0}
.pd-spec div:first-child{border-left:0}
.pd-spec dt{font-size:12px;color:var(--ink-2);letter-spacing:.08em;line-height:20px}
.pd-spec dd{font-family:var(--num);font-weight:600;font-size:20px;line-height:28px;margin-top:2px}
.pd-spec dd small{font-size:13px}
.pd-spec dd.zh{font-family:var(--sans);font-weight:500;font-size:14px;display:flex;align-items:center;justify-content:center;gap:4px}
.pd-price{margin:24px 0 4px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pd-price .num,.pd-bar .num{font-family:var(--num);font-weight:600;letter-spacing:0}
.pd-price .num{font-size:44px;line-height:1;color:var(--primary)}
.pd-price .num sup{font-size:18px;vertical-align:baseline;position:relative;top:-18px;margin-right:2px;font-weight:500}
.pd-price .lbl{font-size:14px;color:var(--ink-2)}
.pd-sub{font-size:13px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:4px}
.pd-st{margin:8px 0 20px;font-size:13px}
.pd-cta{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.pd-cta .btn,.pd-cta .ob{width:100%;height:48px}
.pd-cta .lk{align-self:center}
.pd-svc{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.pd-svc .ey{margin-bottom:12px}
.pd-svc ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pd-svc li{border:1px solid var(--line);border-radius:6px;padding:6px 12px;font-size:13px;line-height:20px;background:var(--surface)}
.pd-svc li.hid{display:none}
.pd-svc.open li.hid{display:block}
.pd-svc li.pd-more{border:0;padding:0;background:none}
.pd-svc.open li.pd-more{display:none}
.pd-svc li.pd-more .lk{min-height:32px;font-size:13px}
.pd-notes .pd-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.prose{max-width:62ch}
.prose p,.prose li{margin-bottom:12px}
.prose h2,.prose h3,.prose h4{font-size:17px;margin:20px 0 8px}
.prose ol,.prose ul{padding-left:20px}
.prose ul{list-style:disc}
.prose dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;font-size:14px;margin-bottom:12px}
.prose dt{color:var(--ink-2)}
.prose a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--gold)}
.prose img{max-width:100%;height:auto;border-radius:var(--r-img)}
.pd-rules{list-style:none;margin-top:12px}
.pd-rules li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.pd-rules li:first-child{border-top:1px solid var(--line)}
.pd-rules li i{font-style:normal;font-family:var(--num);font-weight:600;color:var(--gold);flex:0 0 24px;letter-spacing:.06em}
.pd-track .dish{flex:0 0 68%;scroll-snap-align:start}
.pd-dlg{border:0;padding:0;background:#000;border-radius:var(--r);max-width:min(92vw,720px);width:100%}
.pd-dlg::backdrop{background:rgba(34,26,23,.7)}
.pd-dlg video{display:block;width:100%;max-height:80vh}
.pd-dlg p{padding:48px 24px;text-align:center;background:var(--surface)}
.pd-dlg .pd-x{position:absolute;right:4px;top:4px;color:#fff;z-index:2}
.pd-dlg .pd-x svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round}
.pd-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:16px}
.pd-bar .num{font-size:22px;color:var(--primary);line-height:1}
.pd-bar .num sup{font-size:12px;position:relative;top:-8px;margin-right:2px;font-weight:500}
.pd-bar small{display:block;font-size:12px;color:var(--ink-2);margin-top:4px}
.pd-bar .btn{flex:0 0 auto;height:44px;padding:0 24px}
@media (min-width:768px){
.pd{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;padding:24px 0 56px;align-items:start}
.pd-bc{padding-top:24px}
.pd-info h1{font-size:28px}
.pd-cta{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px 20px}
.pd-cta .btn,.pd-cta .ob{width:auto}
.pd-notes .pd-cols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
.pd-track .dish{flex:0 0 calc((100% - 36px)/4)}
}
@media (min-width:1024px){
body.is-dish{padding-bottom:0}
.pd-bar{display:none}
.pd{gap:64px}
.pd-info h1{font-size:32px}
.pd-price .num{font-size:56px}
}

/* ===== csfix 2026-09-20：桌機（≥768）關閉時 .cs 訂位面板只用 opacity:0 藏在畫面正中央（360px），隱形但仍可點——蓋到的卡片「翻面/翻回」點了沒反應、正好壓到 LINE 鈕的就開新分頁跳 LINE。同 .ks 修法：關閉時 visibility:hidden＋pointer-events:none（visibility 延到淡出結束才切） ===== */
.cs{visibility:hidden;pointer-events:none;transition:transform 250ms,visibility 0s 250ms}
body.cso .cs{visibility:visible;pointer-events:auto;transition-delay:0s}
@media (min-width:768px){.cs{transition:opacity var(--t),transform var(--t),visibility 0s var(--t)}body.cso .cs{transition-delay:0s}}

/* ---------- V9 試吃片牆 /video/ ---------- */
.vw-sec{padding-top:24px}
.vw-sec .sh h1{font-size:26px;margin-top:4px;line-height:1.35}
.vw-sec .sh h1::after{content:"— ✦ —";display:inline-block;margin-left:14px;vertical-align:middle;font-family:var(--num);font-weight:400;font-size:13px;letter-spacing:.18em;color:var(--gold);white-space:nowrap;opacity:.9}
.vw-n{flex:0 0 auto;font-size:13px;color:var(--ink-2);letter-spacing:.04em;white-space:nowrap}
.vw{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vw>*{min-width:0;max-width:100%}
.vw .dish .ph{aspect-ratio:9/16}
.vw .vw-ct{font-size:12px;line-height:1.5;color:var(--ink-2);letter-spacing:.08em;margin:0 0 2px}
.vw.vw-manual .dish .vd{font-size:12px}
.vw-pg{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:32px 0 8px}
.vw-pg a,.vw-pg span{min-width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border:1px solid var(--line);border-radius:6px;font-family:var(--num);font-size:15px;background:var(--surface);transition:border-color var(--t),color var(--t)}
.vw-pg a:hover{border-color:var(--primary);color:var(--primary)}
.vw-pg .cur{background:var(--primary);border-color:var(--primary);color:#FBF6EE}
@media (min-width:768px){
.vw{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}
@media (min-width:1024px){
.vw{grid-template-columns:repeat(4,minmax(0,1fr))}
.vw-sec .sh h1{font-size:32px}
}

/* ---------- V9 料理頁 inline 試吃片播放器 ---------- */
.pd-vplay{margin:16px 0 0;padding:0}
.pd-vplay .ey{display:block;margin-bottom:8px}
.pd-vplay video{display:block;width:100%;max-width:340px;margin:0 auto;aspect-ratio:9/16;object-fit:contain;background:#000;border-radius:var(--r-img)}
.pd-vplay figcaption{margin-top:8px;font-size:13px;line-height:1.7;color:var(--ink-2);text-align:center}
@media (min-width:768px){
.pd-vplay video{max-width:300px}
}
.vw .ph-v .cv{display:block}

/* ===== card.css ===== */
/* ===== 餐券卡 v2（D3b）===== */
.dish.cv2{position:relative;perspective:1200px}
.dish.cv2 .ci{position:relative;transform-style:preserve-3d;transition:transform 600ms cubic-bezier(.4,0,.2,1)}
.dish.cv2.fl .ci{transform:rotateY(180deg)}
.dish.cv2 .cf,.dish.cv2 .cb{backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--surface);border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:10px 8px 12px;border-radius:2px}
.dish.cv2 .cb{position:absolute;inset:0;transform:rotateY(180deg);background:var(--bg);display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:36px 12px 12px}
/* 左右圓孔（page 底色挖洞） */
.dish.cv2 .ci::before,.dish.cv2 .ci::after{content:"";position:absolute;top:calc(100% - 96px);width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,var(--bg) 0 58%,var(--line) 60%,var(--bg) 66%);z-index:3;pointer-events:none}
.dish.cv2 .ci::before{left:-7px}.dish.cv2 .ci::after{right:-7px}
.dish.cv2 .dl{display:block;color:inherit}
/* 圖區：多圖輪播 */
.dish.cv2 .pg{display:flex;width:100%;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.dish.cv2 .pg::-webkit-scrollbar{display:none}
.dish.cv2 .pg img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.dish.cv2 .pd{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px;z-index:2;pointer-events:none}
.dish.cv2 .pd i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55);border:1px solid rgba(0,0,0,.15)}
.dish.cv2 .pd i.on{background:var(--gold)}
/* 章／標 */
.dish.cv2 .chip{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.9);letter-spacing:.1em;text-transform:uppercase;border-radius:2px;padding:1px 8px;text-shadow:0 0 3px rgba(0,0,0,.5);backdrop-filter:blur(2px);left:8px;top:8px}
.dish.cv2 .is-off .chip{opacity:.7}
.dish.cv2 .no{position:absolute;right:8px;top:8px;font-family:var(--num);font-size:13px;font-weight:600;color:var(--gold);letter-spacing:.04em;text-shadow:0 0 4px rgba(0,0,0,.45);z-index:2}
.dish.cv2 .vd{position:absolute;right:8px;top:36px;left:auto;bottom:auto;font-size:11px;color:var(--gold);border:1px solid var(--gold);background:rgba(34,26,23,.55);padding:1px 6px;border-radius:2px;letter-spacing:.08em;z-index:2}
.dish.cv2 .vd::before{content:"▶ ";font-size:9px}
.dish.cv2 .st{position:absolute;left:8px;bottom:12px;margin:0;z-index:2;font-size:12px;line-height:1.4}
.dish.cv2 .st.on{transform:rotate(-8deg);transform-origin:left bottom;color:var(--primary);border:2px solid var(--primary);outline:1px solid var(--primary);outline-offset:2px;padding:2px 8px;letter-spacing:.18em;font-weight:600;background:rgba(251,246,238,.82);opacity:.85;border-radius:2px;mix-blend-mode:multiply}
.dish.cv2 .st.on::before{display:none}
.dish.cv2 .st.off{color:var(--ink-2);background:rgba(251,246,238,.85);padding:1px 8px;border-radius:2px}
.dish.cv2.is-off .ph img{filter:grayscale(.6)}
.dish.cv2 .pk{position:absolute;right:8px;bottom:36px;width:52px;height:52px;border-radius:50%;background:var(--gold);color:#fff;font-size:11px;line-height:1.2;font-weight:600;display:flex;align-items:center;justify-content:center;text-align:center;padding:4px;letter-spacing:.08em;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--gold);transform:rotate(6deg);z-index:2;writing-mode:vertical-rl}
.dish.cv2 .rb{position:absolute;left:-36px;top:14px;width:140px;transform:rotate(-45deg);background:#B8322F;color:#fff;font-size:11px;letter-spacing:.12em;text-align:center;padding:3px 0;z-index:3;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.dish.cv2 .rb + .chip,.dish.cv2 .rb ~ .chip{top:auto;bottom:44px;left:8px}
/* 按鈕 */
.dish.cv2 .fav{position:absolute;right:12px;top:14px;z-index:4;font-size:20px}
.dish.cv2 .cf .fav{top:34px}
.dish.cv2 .fav.y{color:var(--gold);transform:scale(1.15)}
.dish.cv2 .flip{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:15px;display:flex;align-items:center;justify-content:center;z-index:4;transition:color var(--t),border-color var(--t)}
.dish.cv2 .flip:hover{color:var(--primary);border-color:var(--primary)}
.dish.cv2 .cb .flip{bottom:auto;top:8px;right:8px}
/* 背面 */
.dish.cv2 .cb .no{position:static;text-shadow:none;font-size:12px}
.dish.cv2 .cb h4{font-family:var(--serif);font-size:17px;line-height:1.3;margin:0}
.dish.cv2 .cb-svc{display:flex;flex-wrap:wrap;gap:4px}
.dish.cv2 .cb-svc span{font-size:11px;border:1px solid var(--line);background:var(--surface);padding:1px 7px;border-radius:2px;color:var(--ink-2);letter-spacing:.04em}
.dish.cv2 .cb-ex{font-family:var(--serif);font-size:13px;color:var(--ink);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.dish.cv2 .cb-meta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;font-size:12px;border-top:1px solid var(--line);padding-top:8px;margin:0}
.dish.cv2 .cb-meta dt{color:var(--ink-2)}.dish.cv2 .cb-meta dd{margin:0;font-family:var(--num)}
.dish.cv2 .cb-act{margin-top:auto;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.btn.sm,.ob.sm{height:40px;padding:0 16px;font-size:14px}
.dish.cv2 .cb .btn{width:100%}
.dish.cv2 .cb .lk{min-height:32px;font-size:13px}
/* 骰子 */
.dice{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:1px solid var(--gold);border-radius:8px;color:var(--primary);font-size:13px;letter-spacing:.06em;background:var(--surface);white-space:nowrap;transition:background var(--t)}
.dice:hover{background:var(--gold-soft)}
.dice:active{transform:rotate(-6deg)}
/* Tab Bar 菜籃計數 */
.tb #tb-bk{position:relative}
.bk-n{position:absolute;top:8px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--primary);color:#fff;font-family:var(--num);font-size:10px;font-weight:600;line-height:16px;text-align:center}
.bk-fly{position:fixed;z-index:99;pointer-events:none;color:var(--primary);font-size:22px;line-height:1}
/* 快速預覽 */
.qv{touch-action:manipulation;border:0;padding:0;background:var(--bg);color:var(--ink);width:min(100vw,960px);max-width:100vw;max-height:100dvh;border-radius:16px 16px 0 0;position:fixed;inset:auto 0 0 0;margin:0 auto;box-shadow:var(--float);overflow:hidden}
.qv::backdrop{background:rgba(34,26,23,.45);backdrop-filter:blur(2px)}
.qv[open]{animation:qv-up 280ms cubic-bezier(.2,.8,.2,1)}
@keyframes qv-up{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.qv-in{display:grid;grid-template-columns:minmax(0,1fr);max-height:100dvh;overflow:auto}
.qv-ph{position:relative;aspect-ratio:4/5;max-height:52vh;background:var(--surface-2);overflow:hidden}
.qv-ph img{width:100%;height:100%;object-fit:cover;display:block}
.qv-ph .no{position:absolute;right:12px;top:12px;font-family:var(--num);color:var(--gold);font-weight:600;text-shadow:0 0 4px rgba(0,0,0,.45)}
.qv-ph .chip{position:absolute;left:12px;top:12px;background:transparent;border:1px solid #fff;color:#fff;letter-spacing:.1em;padding:1px 8px;border-radius:2px;text-shadow:0 0 3px rgba(0,0,0,.5)}
.qv-b{padding:16px 20px 24px;display:flex;flex-direction:column;gap:6px}
.qv-t{font-family:var(--serif);font-size:22px;line-height:1.3}
.qv-b .st{margin:2px 0 6px}
.qv-svc{display:flex;flex-wrap:wrap;gap:4px}
.qv-svc span{font-size:12px;border:1px solid var(--line);background:var(--surface);padding:1px 8px;border-radius:2px;color:var(--ink-2)}
.qv-ex{font-family:var(--serif);font-size:14px;color:var(--ink-2);line-height:1.7}
.qv-act{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.qv-act .btn{flex:1}
.qv-more{align-self:flex-start}
.qv-x{position:absolute;right:4px;top:4px;z-index:3;background:rgba(251,246,238,.85);border-radius:50%}
.qv-p,.qv-n{touch-action:manipulation;position:absolute;top:26vh;z-index:3;width:40px;height:40px;border-radius:50%;background:rgba(251,246,238,.9);color:var(--ink);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.qv-p{left:8px}.qv-n{right:8px}
.qv-p[disabled],.qv-n[disabled]{opacity:.3}
.qv-fav.y{color:var(--gold);border-color:var(--gold)}
/* 菜籃頁 */
.bk{padding-top:32px;padding-bottom:48px}
.bk-hint{color:var(--ink-2);font-size:14px;margin:8px 0 20px}
.bk-list{margin-bottom:24px}
.bk-list .bki{position:relative;background:var(--surface);border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:8px}
.bk-list .bki .ph{aspect-ratio:4/5}
.bk-list .bki .ph img{filter:none;opacity:1}
.bk-list .bki h3{font-size:15px;margin-top:8px}
.bk-list .bki .pr{margin-top:0}
.bk-list .bki .rm{position:absolute;right:12px;top:12px;width:32px;height:32px;border-radius:50%;background:rgba(251,246,238,.9);border:1px solid var(--line);color:var(--ink-2);font-size:16px;z-index:2}
.bk-list .bki .rm:hover{color:var(--primary);border-color:var(--primary)}
.bk-empty{display:none;text-align:center;padding:24px 0}
.bk-empty .btn{margin-top:16px}
.bk.empty .bk-empty{display:block}.bk.empty #bk-act,.bk.empty .bk-list{display:none}
.bk-act{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--gold);padding-top:20px;max-width:520px}
.bk-act .btn,.bk-act .ob{width:100%;text-align:center}
.bk-msg{font-size:13px;color:var(--ink-2);font-family:var(--serif);border:1px dashed var(--line);padding:10px 12px;border-radius:4px;background:var(--surface);user-select:all}
@media (min-width:768px){
.qv{position:fixed;inset:0;margin:auto;height:auto;max-height:min(90vh,640px);border-radius:16px;width:min(92vw,960px)}
.qv[open]{animation:qv-in 240ms ease-out}
@keyframes qv-in{from{transform:scale(.96);opacity:0}to{transform:none;opacity:1}}
.qv-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-height:min(90vh,640px)}
.qv-ph{aspect-ratio:auto;max-height:none;height:100%}
.qv-b{padding:32px 32px 32px 28px;justify-content:center}
.qv-p,.qv-n{top:50%;transform:translateY(-50%)}
.qv-p{left:calc(50% - 44px)}.qv-n{right:8px}
.dish.cv2 .fav{right:14px}
}
@media (hover:none){.dish.cv2 .flip{width:36px;height:36px}}
@media (prefers-reduced-motion:reduce){
.dish.cv2 .ci{transition:none;transform-style:flat}
.dish.cv2.fl .ci{transform:none}
.dish.cv2 .cf,.dish.cv2 .cb{backface-visibility:visible;transition:opacity 200ms}
.dish.cv2 .cb{transform:none;opacity:0;pointer-events:none}
.dish.cv2.fl .cb{opacity:1;pointer-events:auto}
.dish.cv2.fl .cf{opacity:0}
.qv[open]{animation:none}
}
/* fix: 手機價格被翻面鈕擠到截字 → 價格允許換行、翻面鈕縮小靠右下、數字字級 16 */
.pr{padding-right:34px;white-space:normal;word-break:keep-all}
@media (max-width:767px){.pr b{font-size:16px}.flip{width:28px;height:28px;font-size:14px}}
/* V8 視覺 QA（2026-09-19） */
.dish.cv2 .chip:has(~ .rb){top:auto;bottom:44px;left:8px}
.pr b{white-space:nowrap}
.dish.cv2{display:flex;flex-direction:column}
.dish.cv2 .ci{flex:1 1 auto;display:flex;flex-direction:column}
.dish.cv2 .cf{flex:1 1 auto;display:flex;flex-direction:column}
.dish.cv2 .cf .dl{flex:1 1 auto;display:flex;flex-direction:column}
.dish.cv2 .cf .dl .pr{margin-top:auto;padding-top:2px}
.bk.empty{border:0;border-radius:0;padding:32px 16px 48px;text-align:left;color:var(--ink);font-size:inherit}
@media (min-width:768px){.bk.empty{padding:32px 32px 48px}}
.bk.empty .bk-empty{text-align:center}
/* V8 桌機：帶側欄的列表格回到 3/4 欄（design.css .grid 5 欄蓋掉 kitchen.css 的 .kgrid）；首頁今晚菜單 12 張用 4 欄不留孤行 */
@media (min-width:1280px){.kmain .kgrid{grid-template-columns:repeat(3,minmax(0,1fr))}#tonight .grid.grid-5{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1440px){.kmain .kgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* V8 桌機：手記／食記單篇首圖改 21:9，避免 4:3 全寬撐到 900px 高 */
@media (min-width:1024px){.ph.gd-hero,.ph.jn-hero{aspect-ratio:21/9}}
/* V8：試吃片角標避開 ♡（.cf .fav 在 top:34px） */
.dish.cv2 .cf .vd{top:62px}
/* 翻面鈕加強（Allen 2026-09-20）：酒紅底奶油字＋金邊、帶文字 */
body .dish.cv2 .flip.flip{width:auto;min-width:0;height:32px;padding:0 10px 0 8px;border-radius:16px;background:#7A1F3D;color:#FBF6EE;border:1px solid #C9A24A;font-size:12px;letter-spacing:.06em;gap:4px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.dish.cv2 .flip::after{content:"翻面";font-family:var(--serif)}
.dish.cv2 .cb .flip::after{content:"翻回"}
body .dish.cv2 .flip.flip:hover{background:#5E1630;color:#FBF6EE;border-color:#FBF6EE}
@media (hover:none){.dish.cv2 .flip{height:36px;padding:0 12px 0 10px}}
/* tst6: 768–1023 商品頁同廚房卡片列（4 欄、卡寬約 167px）價格縮一級、翻面鈕收緊，價格與鈕間距 ≥12px */
@media (min-width:768px) and (max-width:1023px){.pd-track .pr b{font-size:14px}body .pd-track .dish.cv2 .flip.flip{padding:0 7px 0 5px;letter-spacing:0;font-size:11px;gap:3px}}
/* 試吃片角標修：app.css 的 .vd 是 28px 圓形，文字被擠成直排 */
body .dish.cv2 .vd.vd{width:auto;height:auto;white-space:nowrap;border-radius:2px;padding:2px 7px;line-height:1.3;font-size:11px}
/* 翻面改為兩面各自旋轉（不依賴 preserve-3d；iOS Safari 在 flex 容器上會把 3D 攤平造成背面鏡像） */
body .dish.cv2 .ci{transform-style:flat;transform:none;transition:none}
body .dish.cv2.fl .ci{transform:none}
body .dish.cv2 .cf,body .dish.cv2 .cb{backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform 600ms cubic-bezier(.4,0,.2,1)}
body .dish.cv2 .cf{transform:rotateY(0deg)}
body .dish.cv2 .cb{transform:rotateY(180deg)}
body .dish.cv2.fl .cf{transform:rotateY(-180deg)}
body .dish.cv2.fl .cb{transform:rotateY(0deg)}
@media (prefers-reduced-motion:reduce){body .dish.cv2 .cf,body .dish.cv2 .cb{transition:opacity 200ms;transform:none}body .dish.cv2 .cb{opacity:0;pointer-events:none}body .dish.cv2.fl .cb{opacity:1;pointer-events:auto}body .dish.cv2.fl .cf{opacity:0}}

/* ===== 背面中段（cbfix 2026-09-20）：標籤 2 行＋「+N 項」展開、引言 2 行、展開後中段可捲、按鈕固定在底 ===== */
.dish.cv2 .cb-mid{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;display:flex;flex-direction:column;gap:6px;padding-bottom:10px;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(#000 calc(100% - 14px),transparent);mask-image:linear-gradient(#000 calc(100% - 14px),transparent)}
.dish.cv2 .cb-svc{flex:0 0 auto;max-height:44px;overflow:hidden;align-content:flex-start}
.dish.cv2 .cb-svc span{line-height:18px;height:20px;box-sizing:border-box;white-space:nowrap}
.dish.cv2 .cb-svc span.xs{display:none}
.dish.cv2 .cb-svc.o{max-height:none;overflow:visible}
.dish.cv2 .cb-svc.o span.xs{display:inline-block}
.dish.cv2 .cb-pl{flex:0 0 auto;align-self:flex-start;font:inherit;font-size:11px;line-height:18px;height:20px;box-sizing:border-box;border:1px dashed var(--primary);color:var(--primary);background:transparent;padding:0 8px;border-radius:2px;cursor:pointer;letter-spacing:.04em}
.dish.cv2 .cb-ex{flex:0 0 auto;-webkit-line-clamp:2}
.dish.cv2 .cb-meta{flex:0 0 auto}

/* ===== flipfix 2026-09-20：翻面前背面 .cb 仍會被點到（Chrome 未合成圖層時不理會 backface-visibility 的命中測試，第一次點「翻面」會打到背面的 LINE 訂位鈕）→ 未翻面的那一面一律 visibility:hidden＋pointer-events:none，翻到一半（300ms）才切換 ===== */
body .dish.cv2 .cf,body .dish.cv2 .cb{transition:transform 600ms cubic-bezier(.4,0,.2,1),visibility 0s linear 300ms}
body .dish.cv2 .cb{visibility:hidden;pointer-events:none}
body .dish.cv2.fl .cb{visibility:visible;pointer-events:auto;transition-delay:0s,0s}
body .dish.cv2 .cf{visibility:visible;pointer-events:auto;transition-delay:0s,0s}
body .dish.cv2.fl .cf{visibility:hidden;pointer-events:none;transition-delay:0s,300ms}
@media (prefers-reduced-motion:reduce){body .dish.cv2 .cf,body .dish.cv2 .cb{transition:opacity 200ms,visibility 0s}body .dish.cv2 .cb{visibility:hidden}body .dish.cv2.fl .cb{visibility:visible}body .dish.cv2.fl .cf{visibility:hidden}}

/* ===== design.css ===== */
/* ===== D3a 設計層：hero 餐盤輪播 / 質感 / 動態 / 插圖（淺色雜誌感，無深色底） ===== */

/* --- 質感：紙纖維＋噪點（極淡） --- */
body::before{content:"";position:fixed;inset:0;z-index:200;pointer-events:none;opacity:.04;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85 .95' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .13 0 0 0 0 .1 0 0 0 0 .09 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),repeating-linear-gradient(93deg,transparent 0 5px,rgba(122,106,96,.35) 5px 6px);background-size:260px 260px,180px 180px}

/* --- Hero 改版：全幅底圖＋奶油漸層＋手寫金字＋餐盤輪播 --- */
.hero-v2{position:relative;isolation:isolate;overflow:hidden;padding:48px 0 56px}
.hero-v2 .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;opacity:.5}
.hero-v2::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg) 0 34%,rgba(251,246,238,.78) 58%,rgba(251,246,238,.28) 100%)}
.hero-v2::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.6}
.hero-tx{position:relative}
.hero-script{position:absolute;left:-6px;top:6px;z-index:0;font-family:var(--num);font-style:italic;font-weight:600;font-size:clamp(56px,14vw,128px);line-height:1;color:var(--gold);opacity:.18;white-space:nowrap;letter-spacing:-.02em;transform:rotate(-5deg);transform-origin:left top;pointer-events:none;font-variation-settings:"opsz" 144}
.hero-tx > .ey,.hero-tx h1,.hero-tx .sl,.hero-tx .ac{position:relative;z-index:1}
.hero-v2 .ac .btn{min-width:160px}
/* 餐盤輪播 */
.hc{position:relative;width:min(100%,320px);margin:0 auto;z-index:1}
.hc-f{position:relative;aspect-ratio:4/5;padding:10px;border:1px solid var(--gold);border-radius:var(--r);background:rgba(255,255,255,.35)}
.hc-f i{position:absolute;width:16px;height:16px;border:0 solid var(--gold);pointer-events:none}
.hc-f i.tl{top:-7px;left:-7px;border-width:1px 0 0 1px}.hc-f i.tr{top:-7px;right:-7px;border-width:1px 1px 0 0}.hc-f i.bl{bottom:-7px;left:-7px;border-width:0 0 1px 1px}.hc-f i.br{bottom:-7px;right:-7px;border-width:0 1px 1px 0}
.hc-f i::after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--gold)}
.hc-f i.tl::after{top:-2px;left:-2px}.hc-f i.tr::after{top:-2px;right:-2px}.hc-f i.bl::after{bottom:-2px;left:-2px}.hc-f i.br::after{bottom:-2px;right:-2px}
.hc-s{position:absolute;inset:10px;display:block;border-radius:var(--r-img);overflow:hidden;background:var(--surface-2);opacity:0;transform:scale(.985);transition:opacity 300ms,transform 300ms;pointer-events:none}
.hc-s.on{opacity:1;transform:none;pointer-events:auto}
.hc-s img,.hc-s .noimg{width:100%;height:100%;object-fit:cover;display:block}
.hc-cap{margin-top:14px;text-align:center;font-size:14px;color:var(--ink-2);min-height:24px;transition:opacity 200ms}
.hc-cap b{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:15px}
.hc-cap .pr{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.hc-cap.sw{opacity:0}
.hc-dots{display:flex;justify-content:center;gap:4px;margin-top:4px}
.hc-dots button{width:28px;height:28px;display:grid;place-items:center;cursor:pointer}
.hc-dots button::before{content:"";width:7px;height:7px;border-radius:50%;border:1px solid var(--gold);background:transparent;transition:background 200ms,transform 200ms}
.hc-dots button[aria-selected=true]::before{background:var(--gold);transform:scale(1.15)}
.hc-dots button:focus-visible{outline:2px solid var(--primary);outline-offset:-4px;border-radius:50%}

/* --- 區塊標題：金線飾條「— ✦ —」＋章節編號超大淡字 --- */
.sh{position:relative}
.sh > *{position:relative;z-index:1}
.sh h2::after{content:"— ✦ —";display:inline-block;margin-left:14px;vertical-align:middle;font-family:var(--num);font-weight:400;font-size:13px;letter-spacing:.18em;color:var(--gold);white-space:nowrap;opacity:.9}
.sh[data-n]::before{display:none} /* D4：Allen 要求拿掉超大章節編號浮水印 */

/* --- 動態：header 毛玻璃 --- */
.hd{transition:background 200ms,border-color 200ms,box-shadow 200ms}
.hd.is-scrolled{background:rgba(251,246,238,.82);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:rgba(201,162,74,.5);box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.hd.is-scrolled{background:rgba(251,246,238,.97)}}

/* --- 動態：主鈕 hover 金色底線從左掃過 --- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left center;transition:transform 250ms cubic-bezier(.4,0,.2,1);pointer-events:none}
.btn:hover::after,.btn:focus-visible::after{transform:scaleX(1)}
.btn.dis::after{display:none}

/* --- 動態：18+ 餐巾「掀開」 --- */
.gate{transition:transform 400ms cubic-bezier(.5,0,.3,1),opacity 400ms;transform-origin:top center;will-change:transform}
.gate.lift{transform:translateY(-104%) rotate(-1.2deg);opacity:.98;pointer-events:none}
.gate .in{transition:transform 400ms cubic-bezier(.5,0,.3,1)}
.gate.lift .in{transform:translateY(24px)}

/* --- 動態：進場（標題左滑、卡片交錯） --- */
.sh,.step,.trust > div{opacity:0;transform:translateX(-12px);transition:opacity 320ms var(--d,0ms),transform 320ms var(--d,0ms)}
.sh.in,.step.in,.trust > div.in{opacity:1;transform:none}
.step:nth-child(2),.trust > div:nth-child(2){--d:80ms}.step:nth-child(3),.trust > div:nth-child(3){--d:160ms}.step:nth-child(4){--d:240ms}
.grid .rv:nth-child(4n+2),.eds .rv:nth-child(4n+2){--d:60ms}.grid .rv:nth-child(4n+3),.eds .rv:nth-child(4n+3){--d:120ms}.grid .rv:nth-child(4n+4),.eds .rv:nth-child(4n+4){--d:180ms}
@supports (animation-timeline:view()){
.sh,.step,.trust > div{opacity:1;transform:none;transition:none;animation:ap-slide linear both;animation-timeline:view();animation-range:entry 0% entry 22%}
.rv,.rv.in{opacity:1;transform:none;transition:none;animation:ap-rise linear both;animation-timeline:view();animation-range:entry 0% entry 26%}
.grid .rv:nth-child(4n+2),.eds .rv:nth-child(4n+2){animation-range:entry 4% entry 30%}
.grid .rv:nth-child(4n+3),.eds .rv:nth-child(4n+3){animation-range:entry 8% entry 34%}
.grid .rv:nth-child(4n+4),.eds .rv:nth-child(4n+4){animation-range:entry 12% entry 38%}
}
@keyframes ap-slide{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes ap-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* --- 動態：今日特餐自動慢速跑動（桌機有 hover 才啟用；手機保留原生 snap 捲動） --- */
.mq-dup{display:none}
@media (min-width:768px) and (hover:hover){
.rail.mq{overflow:hidden}
.rail.mq .track{width:max-content;overflow:visible;scroll-snap-type:none;padding-right:0;animation:ap-mq 60s linear infinite}
.rail.mq .mq-dup{display:block}
.rail.mq:hover .track,.rail.mq:focus-within .track{animation-play-state:paused}
}
@keyframes ap-mq{to{transform:translateX(calc(-50% - 6px))}}

/* --- 插圖配置 --- */
#picks .sh{align-items:flex-end;flex-wrap:wrap}
#picks .art-plate{flex:0 0 auto;width:132px;height:auto;margin-left:auto;opacity:.9;border-radius:var(--r-img);mix-blend-mode:multiply;order:3}
#journal{position:relative;isolation:isolate;background:url(../img/art-table.webp) center 40%/cover no-repeat}
#journal::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bg);opacity:.88}
#journal::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg),transparent 30%,transparent 70%,var(--bg))}
#journal .ed{background:rgba(255,255,255,.5)}
.error404 .page .wrap::after{content:"";display:block;width:min(100%,420px);aspect-ratio:1291/768;margin:32px auto 0;border-radius:var(--r-img);background:url(../img/art-plate.webp) center/cover no-repeat;opacity:.9}

/* --- 響應 --- */
@media (min-width:768px){
.hero-v2{padding:72px 0 80px}
.hero-v2::before{background:linear-gradient(90deg,var(--bg) 0 42%,rgba(251,246,238,.82) 60%,rgba(251,246,238,.2) 100%)}
.hero-script{left:-10px;top:-4px;font-size:clamp(88px,9.5vw,140px)}
.hc{width:min(100%,360px);margin:0 0 0 auto}
.sh h2::after{margin-left:18px;font-size:14px}
#picks .art-plate{width:240px;order:0;margin-bottom:-12px}
}
@media (min-width:1024px){
.hero-v2{padding:64px 0 72px}
.hero-script{top:-8px}
#picks .art-plate{width:300px;margin-bottom:-24px}
}
@media (prefers-reduced-motion:reduce){
.sh,.step,.trust > div,.rv{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
.hc-s{transition:none}
.rail.mq .track{animation:none;width:auto;overflow-x:auto;scroll-snap-type:x mandatory}
.rail.mq .mq-dup{display:none}
.gate.lift{transform:none}
.hero-script{transform:rotate(-5deg)}
}

/* ===== R1 本週榜單（首頁 #rank）：三欄名次表，手機橫向 scroll-snap ===== */
.rank-cols{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px;padding:4px 16px 8px;scroll-padding:0 16px}
.rank-cols::-webkit-scrollbar{display:none}
.rank-col{flex:0 0 86vw;max-width:420px;scroll-snap-align:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:2px 16px 6px}
.rank-col>h3{display:flex;align-items:baseline;gap:8px;font-size:17px;padding:12px 0 10px;border-bottom:1px solid var(--line)}
.rank-col>h3 .ey{display:inline;font-size:11px;font-weight:400}
.rank-row{display:grid;grid-template-columns:44px 64px minmax(0,1fr);align-items:center;gap:12px;margin:0 -8px;padding:10px 8px;border-bottom:1px solid var(--line);border-radius:var(--r-img);transition:background var(--t)}
.rank-row:last-child{border-bottom:0}
.rank-row:hover,.rank-row:focus-visible{background:var(--surface-2);outline:none}
.rank-no{position:relative;text-align:center;font-family:var(--num);font-weight:600;font-size:30px;line-height:1;color:var(--ink-2);font-variation-settings:"opsz" 144;font-variant-numeric:tabular-nums;padding-top:6px}
.rank-no small{display:block;font-size:9px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);opacity:.8;margin-bottom:2px}
.rank-row.is-1 .rank-no{color:var(--gold)}
.rank-row.is-1 .rank-no small{color:var(--gold);opacity:1}
.rank-crown{position:absolute;top:-4px;left:50%;width:16px;height:12px;transform:translateX(-50%);color:var(--gold)}
.rank-img{display:block;width:64px;aspect-ratio:4/5;border-radius:var(--r-img);overflow:hidden;background:var(--surface-2)}
.rank-img img,.rank-img .noimg{width:100%;height:100%;object-fit:cover;display:block}
.rank-tx{min-width:0;line-height:1.5}
.rank-nm{display:flex;align-items:center;gap:6px;font-family:var(--serif);font-weight:600;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-nm .flag{flex:0 0 auto;width:18px;height:12px;border-radius:2px}
.rank-sp,.rank-pr{display:block;font-size:12px;color:var(--ink-2)}
.rank-pr b{font-family:var(--num);font-weight:600;font-size:13px;color:var(--primary);font-variant-numeric:tabular-nums}
.rank-empty{padding:36px 8px;text-align:center;font-size:13px;line-height:1.7;color:var(--ink-2)}
.rank-empty b{display:block;font-family:var(--serif);font-weight:600;font-size:15px;color:var(--ink);margin-bottom:4px}
.rank-empty::before{content:"— ✦ —";display:block;font-family:var(--num);font-size:12px;letter-spacing:.18em;color:var(--gold);margin-bottom:10px}
@media (min-width:768px){
.rank-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;overflow:visible;scroll-snap-type:none;margin:0;padding:0}
.rank-col{flex:auto;max-width:none;padding:2px 18px 8px}
.rank-row{margin:0 -10px;padding:12px 10px}
}
@media (prefers-reduced-motion:reduce){.rank-row{transition:none}}

/* ===== D4 設計修正（2026-09-19 Allen 手機回饋）：暖白表面、區塊底色交替、廚房索引、雜誌問答、Tab Bar 圖示、菜單覆蓋層 ===== */
/* --- 表面：去粗框只留髮絲線 --- */
.rank-col,.kp,.sel,.empty{border-color:var(--line)}
.hc-f{background:rgba(255,252,247,.35)}
#journal .ed{background:rgba(255,252,247,.5)}
.tb{background:rgba(255,252,247,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* --- 區塊底色三種交替 --- */
.band-linen{background:var(--surface-2);border-top:0;position:relative}
.band-linen + .sec{border-top:0}
/* D6：深底（酒紅）區塊已移除，首頁改奶油／亞麻交替 */
/* --- 02 廚房索引（D6 雜誌目錄式）：三大都會列 ＋ 其餘縣市兩欄文字索引 --- */
.ki{display:flex;flex-direction:column;gap:36px;background:transparent;border:0}
.ki-metro{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.ki-m{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);color:var(--ink);-webkit-tap-highlight-color:transparent}
.ki-m .ki-ic{width:32px;height:32px;flex:none;object-fit:contain;transition:transform var(--t)}
.ki-ic-x{display:block;border:1px solid var(--line);border-radius:50%}
.ki-m .ki-tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.ki-m .ki-nm{font-family:var(--serif);font-weight:600;font-size:26px;line-height:1.2;letter-spacing:-.01em;color:inherit;transition:color var(--t)}
.ki-m .ki-en{font-family:var(--num);font-weight:400;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);line-height:1.4}
.ki-ar{flex:none;font-family:var(--num);font-size:18px;line-height:1;color:var(--gold);transition:transform var(--t)}
.ki-m:hover .ki-nm,.ki-m:focus-visible .ki-nm,.ki-m:active .ki-nm{color:var(--primary)}
.ki-m:hover .ki-ar,.ki-m:focus-visible .ki-ar{transform:translateX(4px)}
.ki-m:hover .ki-ic,.ki-m:focus-visible .ki-ic{transform:scale(1.06)}
.ki-m:focus-visible,.ki-r:focus-visible{outline:none}
.ki-rest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;border-top:1px solid rgba(201,162,74,.35)}
.ki-r{display:flex;align-items:center;justify-content:space-between;gap:8px;height:56px;border-bottom:1px solid rgba(201,162,74,.35);color:var(--ink);-webkit-tap-highlight-color:transparent}
.ki-r .ki-nm{font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.3;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--t)}
.ki-r .ki-ar{font-size:12px;opacity:.85}
.ki-r:hover .ki-nm,.ki-r:focus-visible .ki-nm,.ki-r:active .ki-nm{color:var(--primary)}
.ki-r:hover .ki-ar,.ki-r:focus-visible .ki-ar{transform:translateX(4px)}
/* --- 07 FAQ 雜誌問答體 --- */
.d4-faq details{border-top:1px solid rgba(201,162,74,.45)}
.d4-faq details:last-child{border-bottom:1px solid rgba(201,162,74,.45)}
.d4-faq summary{display:grid;grid-template-columns:40px minmax(0,1fr) 32px;align-items:start;gap:0 8px;padding:20px 0;font-size:20px;line-height:1.4;min-height:0}
.d4-faq summary::after{content:none}
.d4-faq .q-n{font-family:var(--num);font-style:italic;font-weight:600;font-size:22px;line-height:1.2;color:var(--gold);letter-spacing:-.02em;font-variation-settings:"opsz" 144;padding-top:2px}
.d4-faq .q-t{font-family:var(--serif);font-weight:600;font-size:20px;color:var(--ink);transition:color var(--t)}
.d4-faq .q-i{position:relative;width:32px;height:32px;margin-top:-2px;justify-self:end;transition:transform 250ms}
.d4-faq .q-i::before,.d4-faq .q-i::after{content:"";position:absolute;left:50%;top:50%;background:var(--gold);transform:translate(-50%,-50%)}
.d4-faq .q-i::before{width:16px;height:1.5px}
.d4-faq .q-i::after{width:1.5px;height:16px;transition:opacity var(--t)}
.d4-faq details[open] .q-t{color:var(--primary)}
.d4-faq details[open] .q-i{transform:rotate(45deg)}
.d4-faq details[open] .q-i::before,.d4-faq details[open] .q-i::after{background:var(--primary)}
.d4-faq .an{position:relative;padding:0 0 24px 40px;color:var(--ink-2);font-size:15px;max-width:720px;line-height:1.8}
.d4-faq .an::before{content:"";position:absolute;left:0;top:12px;width:24px;height:2px;background:var(--gold)}
.d4-faq summary:hover .q-t{color:var(--primary)}
/* --- Tab Bar：選中酒紅實心點 --- */
.tb a,.tb button{position:relative;padding-top:2px}
.tb a svg,.tb button svg{width:24px;height:24px}
.tb a[aria-current]::after{content:"";position:absolute;left:50%;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--primary);transform:translateX(-50%)}
/* --- 漢堡（餐牌）入口：只在手機/平板 --- */
.hd .ic.mb{display:flex}
/* --- 菜單覆蓋層：奶油餐巾 --- */
.mn{position:fixed;inset:0;z-index:90;background:var(--bg);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px calc(24px + env(safe-area-inset-bottom));transform:translateY(-104%) rotate(-1.2deg);transform-origin:top center;transition:transform 400ms cubic-bezier(.5,0,.3,1);will-change:transform}
.mn[hidden]{display:none}
.mn.o{transform:none}
.mn::before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.mn-h{display:flex;align-items:center;justify-content:space-between;height:56px;border-bottom:1px solid var(--line);flex:none}
.mn-h .logo img{height:38px;width:auto}
.mn-b{display:flex;flex-direction:column;padding-top:8px}
.mn-l{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 0;border-bottom:1px solid rgba(201,162,74,.45);font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:-.01em;color:var(--ink);transition:color var(--t)}
.mn-l i{font-family:var(--num);font-style:italic;font-weight:600;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.mn-l:hover,.mn-l:active{color:var(--primary)}
.mn-g .mn-l{border-bottom:0;padding-bottom:8px}
.mn-k{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;padding:0 0 18px 4px;border-bottom:1px solid rgba(201,162,74,.45)}
.mn-k a{display:flex;align-items:center;min-height:40px;font-size:15px;color:var(--ink-2);letter-spacing:.02em}
.mn-k a::before{content:"·";color:var(--gold);margin-right:8px}
.mn-k a:hover,.mn-k a:active{color:var(--primary)}
.mn-r{padding:24px 0 0}
.mn-r .ey{margin-bottom:12px}
.mn-c{display:flex;gap:12px;flex-wrap:wrap}
.mn-c .btn,.mn-c .ob{flex:1 1 140px;height:48px}
.mn-f{margin-top:auto;padding-top:32px;font-size:12px;color:var(--ink-2);text-align:center}
body.mno{overflow:hidden}
@media (min-width:768px){
.ki-m .ki-ic{width:40px;height:40px}
.ki-m .ki-nm{font-size:30px}
.ki-rest{column-gap:40px}
.d4-faq summary{grid-template-columns:48px minmax(0,1fr) 32px}
.d4-faq .an{padding-left:48px}
.d4-faq .q-n{font-size:26px}
.mn{padding:0 32px calc(24px + env(safe-area-inset-bottom))}
.mn-k{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1024px){
.ki{flex-direction:row;align-items:flex-start;gap:64px}
.ki-metro{flex:0 0 40%;max-width:40%}
.ki-rest{flex:1 1 60%;column-gap:48px}
.ki-m{padding:22px 0;gap:20px}
.ki-m .ki-nm{font-size:32px}
.hd .ic.mb{display:none}
.mn{display:none}
}
@media (prefers-reduced-motion:reduce){
.mn{transition:none;transform:none}
.mn:not(.o){display:none}
.d4-faq .q-i{transition:none}
}
/* K3 18 間廚房排版：手機/平板右欄兩欄（15+補格=16 偶數）；桌機 3 欄×5 列，補格隱藏 */
.ki-r-all .ki-nm{color:var(--primary);font-size:16px}
@media (min-width:1024px){.ki-rest{grid-template-columns:repeat(3,minmax(0,1fr))}.ki-r-all{display:none}}

/* ===== M2 動線改版：hero 點餐選擇器／內用外送切換條／區域 chip／Tab Bar 廚房面板／5 欄卡片 ===== */
.pick{position:relative;z-index:1;margin-top:20px;padding:18px 18px 16px;border:1px solid rgba(201,162,74,.45);border-radius:var(--r);background:rgba(251,246,238,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:560px}
.pick-q{font-family:var(--serif);font-size:15px;font-weight:600;color:var(--ink);margin-bottom:10px}
.pick-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pick-mode{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;border:2px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color var(--t),background var(--t),color var(--t)}
.pick-mode b{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.08em;line-height:1.2}
.pick-mode i{font-family:var(--num);font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.pick-mode:hover{border-color:var(--gold)}
.pick-mode[aria-pressed="true"]{border-color:var(--gold);background:var(--primary);color:#FBF6EE;box-shadow:0 0 0 3px var(--gold-soft)}
.pick-mode[aria-pressed="true"] i{color:rgba(251,246,238,.75)}
.pick-cty{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;align-items:center}
.pick-c,.pick-more{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13px;font-family:var(--serif);color:var(--ink);transition:border-color var(--t),background var(--t)}
.pick-c:hover,.pick-more:hover{border-color:var(--gold)}
.pick-c[aria-pressed="true"]{border-color:var(--primary);background:var(--primary);color:#FBF6EE}
.pick-rest{display:contents}
.pick-cty.js .pick-rest{display:none}
.pick-cty.js.o .pick-rest{display:contents}
.pick-cty.js.o .pick-more span{display:inline-block;transform:rotate(180deg)}
.pick-act{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.pick-act .pick-go{flex:1;min-width:0}
.pick-act .pick-line{height:40px;padding:0 12px;font-size:13px;white-space:nowrap}
.hero-v2 .ac{display:none}
@media (min-width:1024px){.pick{margin-top:24px}.pick-mode{min-height:72px}.pick-mode b{font-size:22px}}
/* 內用｜外送｜全部 切換條（真連結） */
.kmode{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--primary);border-radius:10px;overflow:hidden;margin:0 0 12px;background:var(--surface)}
.kmode a{display:flex;align-items:center;justify-content:center;min-height:44px;font-family:var(--serif);font-weight:600;letter-spacing:.08em;font-size:15px;color:var(--primary);transition:background var(--t),color var(--t)}
.kmode a+a{border-left:1px solid var(--primary)}
.kmode a:hover{background:var(--primary-soft)}
.kmode a[aria-current]{background:var(--primary);color:#FBF6EE}
.kmode a[aria-current]:hover{background:var(--primary-deep)}
.tn-mode{max-width:480px;margin-bottom:8px}
/* 行政區／縣市 chip 一排 */
.karea{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;margin-bottom:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.karea::-webkit-scrollbar{display:none}
.karea a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13px;font-family:var(--serif);white-space:nowrap;transition:border-color var(--t)}
.karea a:hover{border-color:var(--gold)}
.karea a[aria-current]{border-color:var(--primary);background:var(--primary);color:#FBF6EE}
@media (min-width:1024px){.karea{flex-wrap:wrap;overflow:visible}}
.kp-cty{max-height:220px;overflow:auto}
.kp-seg{display:none}.kp-g:has(>.kp-seg),.kp-g:has(>.kp-t+.kp-seg){display:none}
/* 首頁今晚菜單 內用／外送／全部 */
.tn.js[data-show="inn"] .tn-out,.tn.js[data-show="out"] .tn-inn{display:none}
.tn.js[data-show="all"] .tn-g .sub{display:none}
.tn.js[data-show="all"] .tn-inn,.tn.js[data-show="all"] .tn-out{display:contents}
.tn.js[data-show="all"] .tn-g .grid{display:contents}
.tn.js[data-show="all"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 12px}
.tn.js[data-show="all"] .tn-out .dish{order:1}
.tn.js[data-show="all"] .tn-inn .dish{order:0}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+2){order:2}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+2){order:3}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+3){order:4}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+3){order:5}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+4){order:6}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+4){order:7}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+5){order:8}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+5){order:9}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+6){order:10}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+6){order:11}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+7){order:12}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+7){order:13}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+8){order:14}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+8){order:15}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+9){order:16}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+9){order:17}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+10){order:18}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+10){order:19}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+11){order:20}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+11){order:21}
.tn.js[data-show="all"] .tn-inn .dish:nth-child(n+12){order:22}
.tn.js[data-show="all"] .tn-out .dish:nth-child(n+12){order:23}
.tn .sub{margin-top:16px}
/* 卡片密度：手機 2 → 平板 3 → 1024 4 → 1280 5 */
@media (min-width:768px){.tn.js[data-show="all"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}}
@media (min-width:1024px){.tn.js[data-show="all"]{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1280px){.grid,.tn.js[data-show="all"]{grid-template-columns:repeat(5,minmax(0,1fr))}.grid .rv:nth-child(5n+5){--d:240ms}}
/* Tab Bar 廚房面板（同聯繫 sheet 樣式） */
.ks-ov{position:fixed;inset:0;z-index:70;background:rgba(34,26,23,.32);opacity:0;pointer-events:none;transition:opacity var(--t)}
.ks{position:fixed;z-index:71;left:0;right:0;bottom:0;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;box-shadow:var(--float);transform:translateY(100%);transition:transform 250ms;padding-bottom:env(safe-area-inset-bottom);max-height:80vh;overflow:auto}
body.kso .ks-ov{opacity:1;pointer-events:auto}
body.kso .ks{transform:none}
.ks{visibility:hidden;pointer-events:none}body.kso .ks{visibility:visible;pointer-events:auto} /* 修：桌機關閉時 .ks 以 opacity:0 停在畫面正中央仍可點，蓋住分頁（點分頁跳到別的縣市） */
.ks-b{padding:16px 20px 24px}
.ks-l{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.ks-l a{display:flex;align-items:baseline;gap:4px;min-height:44px;padding:0 4px;border-bottom:1px solid var(--line);font-family:var(--serif)}
.ks-l a b{font-size:16px;font-weight:600}
.ks-l a i{font-style:normal;font-size:12px;color:var(--ink-2)}
.ks-all{align-self:center;margin-top:8px}
@media (min-width:768px){.ks{left:50%;right:auto;bottom:auto;top:50%;width:420px;transform:translate(-50%,-50%) scale(.96);opacity:0;border-radius:var(--r);transition:opacity var(--t),transform var(--t)}body.kso .ks{opacity:1;transform:translate(-50%,-50%)}}

/* ===== M1 首屏門面：招牌字 .hero-sign／hero 短片底 .hero-v／18+ 餐巾開場 #gate ===== */
/* --- hero 短片底：取代 hero-room 插畫；奶油漸層 ::before 沿用（手機上→下、桌機左→右） --- */
.hero-v2 .hero-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;opacity:.62;background:var(--surface-2);pointer-events:none}
.hero-v2::before{background:linear-gradient(180deg,var(--bg) 0 30%,rgba(251,246,238,.84) 56%,rgba(251,246,238,.22) 100%)}
@media (min-width:768px){.hero-v2::before{background:linear-gradient(90deg,var(--bg) 0 38%,rgba(251,246,238,.86) 58%,rgba(251,246,238,.12) 100%)}}
@media (min-width:768px){.hero-v2 .hero-v{object-position:center right}}
/* --- 招牌字 --- */
.hero-sign{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:16px;position:relative;z-index:1;max-width:560px}
.hero-sign .hs-h1{display:contents}
.hs-ey{grid-column:1/-1;order:0;display:flex;align-items:center;gap:10px;font-family:var(--num);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-variant-numeric:tabular-nums;margin-bottom:12px}
.hs-ey::before{content:"";width:24px;height:1px;background:var(--gold);flex:0 0 auto}
.hs-kw{grid-column:1/-1;order:1;display:block;font-family:var(--serif);font-weight:600;font-size:40px;line-height:1.15;letter-spacing:0;white-space:nowrap;color:var(--primary)}
.hs-ch{display:inline-block;width:1em;text-align:center;animation:hsUp 640ms cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 60ms)}
@keyframes hsUp{from{opacity:0;transform:translateY(.45em)}to{opacity:1;transform:none}}
/* 逐字各自套同一條大漸層（寬 = 字數×220%），用 --i 對齊位移 → 看起來是一條金光橫掃整行 */
@supports (-webkit-background-clip:text) or (background-clip:text){
.hs-ch:not(.hs-dot){background:linear-gradient(100deg,var(--primary) 0%,var(--primary) 35%,var(--gold) 50%,var(--primary) 65%,var(--primary) 100%);background-size:calc(var(--n) * 2.2em) 100%;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:hsUp 640ms cubic-bezier(.2,.7,.2,1) both,hsSheen 6s linear infinite;animation-delay:calc(var(--i) * 60ms),0s}
@keyframes hsSheen{from{background-position:calc(var(--i) * -1em) 0}to{background-position:calc(var(--i) * -1em - var(--n) * 1.2em) 0}}
}
.hs-ch.hs-dot{color:var(--gold);-webkit-text-fill-color:var(--gold);width:.8em}
.hs-sub{grid-column:1/-1;order:2;display:block;font-family:var(--num);font-style:italic;font-weight:600;font-size:20px;line-height:1.3;color:var(--gold);margin:6px 0 10px;font-variation-settings:"opsz" 72;animation:hsIn 600ms cubic-bezier(.2,.7,.2,1) both;animation-delay:820ms}
@keyframes hsIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.hs-brand{grid-column:1;order:3;display:flex;align-items:baseline;gap:10px;font-weight:600;line-height:1.3;animation:hsIn 600ms cubic-bezier(.2,.7,.2,1) both;animation-delay:1040ms}
.hs-en{font-family:var(--num);font-variant-caps:small-caps;font-variant-numeric:tabular-nums;font-size:16px;letter-spacing:.18em;color:var(--primary);font-variation-settings:"opsz" 30}
.hs-en::after{content:"—";color:var(--gold);margin-left:10px;letter-spacing:0}
.hs-zh{font-family:var(--serif);font-size:20px;letter-spacing:.06em;color:var(--ink)}
.hs-zh .ap-wet{color:var(--gold);font-size:1.15em;text-shadow:0 0 10px rgba(201,162,74,.6);animation:hsGlow 3s ease-in-out infinite}
@keyframes hsGlow{0%,100%{text-shadow:0 0 6px rgba(201,162,74,.35)}50%{text-shadow:0 0 14px rgba(201,162,74,.8),0 0 2px rgba(201,162,74,.6)}}
.hs-hr{grid-column:2;order:4;font-family:var(--num);font-variant-numeric:tabular-nums;font-size:14px;letter-spacing:.06em;color:var(--ink-2);white-space:nowrap;animation:hsIn 600ms both;animation-delay:1200ms}
.hs-sl.sl{grid-column:1/-1;order:5;position:relative;height:1.75em;margin:14px 0 0;overflow:hidden;font-size:16px;color:var(--ink-2)}
.hs-sl .hs-l{position:absolute;left:0;top:0;right:0;opacity:0;transform:translateY(6px);transition:opacity 600ms ease,transform 600ms ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-sl .hs-l.on{opacity:1;transform:none}
.hero-sign + .pick{margin-top:22px}
/* 遮罩還在時先暫停招牌字進場，掀開後才播（一次性） */
html.gt .hero-sign :is(.hs-ch,.hs-sub,.hs-brand,.hs-hr){animation-play-state:paused}
@media (min-width:768px){.hs-kw{font-size:56px}.hs-sub{font-size:22px}.hs-zh{font-size:22px}.hs-en{font-size:17px}.hs-sl.sl{font-size:17px}}
@media (min-width:1024px){.hs-kw{font-size:64px;line-height:1.12}.hs-sub{font-size:24px}.hs-hr{font-size:15px}.hero-sign{max-width:600px}.hero-sign + .pick{margin-top:28px}}
@media (min-width:1440px){.hs-kw{font-size:72px}}
/* wine/mix：酒紅底上招牌字改金色系 */
body.theme-wine .hs-kw,body.theme-mix .hs-kw,body.theme-wine .hs-en,body.theme-mix .hs-en{color:#C9A24A}
body.theme-wine .hs-zh,body.theme-mix .hs-zh{color:#FBF6EE}
body.theme-wine .hs-hr,body.theme-mix .hs-hr,body.theme-wine .hs-sl.sl,body.theme-mix .hs-sl.sl{color:rgba(251,246,238,.78)}
@supports (-webkit-background-clip:text) or (background-clip:text){
body.theme-wine .hs-ch:not(.hs-dot),body.theme-mix .hs-ch:not(.hs-dot){background-image:linear-gradient(100deg,#C9A24A 0%,#C9A24A 35%,#FBF6EE 50%,#C9A24A 65%,#C9A24A 100%)}
}
/* --- 18+ 餐巾開場（深酒紅底；序列 0→2.4s；reduced-motion / .noanim 直接顯示） --- */
.gate{background:#3B0D1F;color:#FBF6EE}
.gate::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(201,162,74,.16),transparent 60%);pointer-events:none}
.gate .in.gt-in{max-width:520px;width:100%;border-color:rgba(201,162,74,.75);padding:36px 24px 32px;background:rgba(59,13,31,.6)}
.gate .in.gt-in::before{border-color:rgba(201,162,74,.28)}
.gt-mark{position:relative;width:112px;height:112px;margin:0 auto 16px}
.gt-mark img{width:112px;height:112px;margin:0;position:relative;z-index:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));animation:gtPop 620ms cubic-bezier(.2,.9,.3,1.2) both}
@keyframes gtPop{from{opacity:0;transform:scale(0) rotate(-8deg)}to{opacity:1;transform:none}}
.gt-ring{position:absolute;inset:0;border-radius:50%;border:1px solid var(--gold);opacity:0;animation:gtRing 1100ms ease-out both;animation-delay:260ms}
.gt-ring2{animation-delay:520ms}
@keyframes gtRing{from{opacity:.85;transform:scale(.6)}to{opacity:0;transform:scale(2.1)}}
.gt-en{display:flex;justify-content:center;gap:.06em;font-family:var(--num);font-weight:600;font-size:30px;letter-spacing:.24em;text-indent:.24em;color:#FBF6EE;line-height:1.1;margin:0 0 10px;font-variation-settings:"opsz" 144}
.gt-en span{display:inline-block;animation:hsUp 520ms cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(560ms + var(--i) * 60ms)}
.gt-line{display:block;width:120px;height:1px;margin:0 auto 12px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform-origin:center;animation:gtLine 500ms ease-out both;animation-delay:1150ms}
@keyframes gtLine{from{transform:scaleX(0);opacity:0}to{transform:none;opacity:1}}
.gt-zh{font-family:var(--serif);font-size:22px;letter-spacing:.3em;text-indent:.3em;color:#FBF6EE;margin:0 0 20px;animation:hsUp 520ms cubic-bezier(.2,.7,.2,1) both;animation-delay:1450ms}
.gt-zh .ap-wet{color:var(--gold);font-size:1.15em;text-shadow:0 0 10px rgba(201,162,74,.6)}
.gt-tx{animation:hsUp 520ms ease-out both;animation-delay:1800ms}
.gate .gt-tx h2{font-size:22px;color:#FBF6EE;margin:0 0 10px}
.gate .gt-tx p{color:rgba(251,246,238,.72);font-size:14px;margin-bottom:22px}
.gate .gt-tx .btn{background:var(--gold);color:#3B0D1F;min-width:140px}
.gate .gt-tx .btn:hover{background:#D9B45E}
.gate .gt-tx .lk{color:rgba(251,246,238,.85);text-decoration-color:var(--gold)}
.gate .ey{display:none}
@media (min-width:768px){.gt-en{font-size:36px}.gt-zh{font-size:26px}.gate .gt-tx h2{font-size:26px}.gate .in.gt-in{padding:44px 40px 40px}}
@media (prefers-reduced-motion:reduce){
.hs-ch,.hs-sub,.hs-brand,.hs-hr,.gt-mark img,.gt-en span,.gt-line,.gt-zh,.gt-tx{animation:none!important;opacity:1!important;transform:none!important}
.hs-ch:not(.hs-dot){background:none!important;color:var(--primary)!important;-webkit-text-fill-color:var(--primary)!important}
body.theme-wine .hs-ch:not(.hs-dot),body.theme-mix .hs-ch:not(.hs-dot){color:#C9A24A!important;-webkit-text-fill-color:#C9A24A!important}
.hs-zh .ap-wet{animation:none!important}
.gt-ring{display:none}
}
.noanim .hs-ch,.noanim .hs-sub,.noanim .hs-brand,.noanim .hs-hr,.noanim .gt-mark img,.noanim .gt-en span,.noanim .gt-line,.noanim .gt-zh,.noanim .gt-tx{opacity:1!important;transform:none!important}
.noanim .gt-ring{display:none}

/* pick 標題列＋骰子 */
.pick-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.pick-head .pick-q{margin:0}.pick-dice{white-space:nowrap;font-size:13px;padding:6px 12px}
@media (max-width:400px){.pick-dice{font-size:12px;padding:6px 8px}}
/* 點餐選擇器上色（Allen）：內用＝酒紅、外送＝金、縣市＝亞麻底酒紅字、選中反白、骰子金框 */
.pick-mode[data-mode="dine"]{background:var(--primary);border-color:var(--primary);color:#FBF6EE}
.pick-mode[data-mode="dine"] i{color:rgba(251,246,238,.78)}
.pick-mode[data-mode="delivery"]{background:var(--gold);border-color:var(--gold);color:#3B0D1F}
.pick-mode[data-mode="delivery"] i{color:rgba(59,13,31,.72)}
.pick-mode[aria-pressed="true"]{box-shadow:0 0 0 3px #FBF6EE,0 0 0 5px var(--gold);transform:translateY(-1px)}
.pick-modes:has([aria-pressed="true"]) .pick-mode[aria-pressed="false"]{opacity:.85}
.pick-mode:hover{filter:brightness(1.05)}
.pick-c,.pick-more{background:var(--surface-2);border-color:transparent;color:var(--primary);font-weight:500}
.pick-c:hover{background:var(--primary-soft);border-color:var(--gold)}
.pick-c[aria-pressed="true"]{background:var(--primary);color:#FBF6EE;border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-soft)}
.pick-more{border:1px dashed var(--gold);background:transparent;color:var(--gold)}
.pick-dice{background:var(--gold-soft);border:1px solid var(--gold);color:var(--primary-deep)}
.pick-dice:hover{background:var(--gold);color:#3B0D1F}
.pick-go{background:var(--primary);color:#FBF6EE;box-shadow:0 6px 18px rgba(122,31,61,.25)}
.pick-go:hover{background:var(--primary-deep)}
/* V3 試吃片列（首頁 #video）：橫向 scroll-snap，手機 62vw≤240px，桌機一視窗 5 張 */
.sec-lead{max-width:36em;font-size:15px;line-height:1.7;color:var(--ink-2);margin:8px 0 20px}
.sec .sh+.sec-lead{margin-top:-8px}
/* 6A 品牌短文（刊頭語）：hero 之後、目錄之前；金色細線在上 */
.brand-note{padding:16px 0 4px;background:var(--bg)}
.brand-note .wrap{border-top:1px solid var(--gold);padding-top:16px}
.brand-note p{max-width:36em;margin:0;font-size:15px;line-height:1.8;color:var(--ink-2);letter-spacing:.02em}
@media (min-width:768px){.brand-note{padding:24px 0 8px}.brand-note .wrap{padding-top:20px}.brand-note p{font-size:16px}}
/* 3A 廚房索引小字「定點茶・外送茶」 */
.ki-m .ki-kw{font-size:11px;line-height:1.4;color:var(--ink-2);letter-spacing:.06em}
.ki-r .ki-kw{margin-left:auto;font-size:10px;color:var(--ink-2);white-space:nowrap;letter-spacing:0}
.vd-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 -16px;padding:4px 16px 8px;scroll-padding:0 16px}
.vd-row::-webkit-scrollbar{display:none}
.vd-row>*{flex:0 0 auto;width:62vw;max-width:240px;scroll-snap-align:start}
@media (min-width:768px){
.vd-row{margin:0 -32px;padding:4px 32px 8px;scroll-padding:0 32px;gap:16px}
.vd-row>*{width:240px}
}
@media (min-width:1024px){
.vd-row>*{width:calc((100% - 4 * 16px) / 5);max-width:none}
}
/* V3 官方色：LINE 綠 / Telegram 藍，三個變體固定；重複 class 拉高特定性壓過 .btn/.ob/.tgb 與 wine/mix 容器規則（不用 !important） */
body .cb-line.cb-line.cb-line.cb-line.cb-line.cb-line{background:#06C755;border-color:#06C755;color:#fff}
body .cb-line.cb-line.cb-line.cb-line.cb-line.cb-line:hover{background:#05b34c;border-color:#05b34c;color:#fff}
body .cb-tg.cb-tg.cb-tg.cb-tg.cb-tg.cb-tg{background:#2AABEE;border-color:#2AABEE;color:#fff}
body .cb-tg.cb-tg.cb-tg.cb-tg.cb-tg.cb-tg:hover{background:#229ED9;border-color:#229ED9;color:#fff}
body :is(.cb-line,.cb-tg) svg{fill:none;stroke:currentColor}
body .cb-line.cb-line.cb-line.cb-line.cb-line.dis,body .cb-tg.cb-tg.cb-tg.cb-tg.cb-tg.dis{opacity:1;filter:none}
/* V7 試吃片列：卡片內影片（底圖仍在，影片載入後蓋上） */
.ph-v .cv{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;opacity:0;transition:opacity 400ms;background:transparent}
.ph-v .cv.on{opacity:1}
.ph-v .pd{display:none}
/* 骰子鈕紅底（Allen 2026-09-19），壓過 wine/mix 的 .dice 透明規則 */
body .pick-dice.pick-dice.pick-dice,body.theme-wine .pick-dice.pick-dice.pick-dice,body.theme-mix .pick-dice.pick-dice.pick-dice{background:#7A1F3D;border-color:#C9A24A;color:#FBF6EE}
body .pick-dice.pick-dice.pick-dice:hover,body.theme-wine .pick-dice.pick-dice.pick-dice:hover,body.theme-mix .pick-dice.pick-dice.pick-dice:hover{background:#5E1630;border-color:#C9A24A;color:#FBF6EE}
/* V10 試吃片點擊播放（2026-09-24）：酒紅圓鈕＋香檳金細框；未播放時影片層不吃點擊（防隱形浮層） */
.ph-v .cv{pointer-events:none}
.ph-v.vp-on .cv{pointer-events:auto;cursor:pointer}
.ph-v .vp{position:absolute;left:50%;top:50%;z-index:3;width:60px;height:60px;margin:-30px 0 0 -30px;padding:0;border-radius:50%;border:1.5px solid #C9A24A;background:rgba(122,31,61,.88);box-shadow:0 0 0 6px rgba(201,162,74,.2),0 6px 18px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s,opacity .2s,visibility .2s}
.ph-v .vp i{display:block;width:0;height:0;margin-left:5px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent #FBF6EE}
.ph-v .vp:hover,.ph-v .vp:focus-visible{transform:scale(1.07);background:#7A1F3D;outline:none}
.ph-v.vp-on .vp{opacity:0;visibility:hidden;pointer-events:none}
@media (prefers-reduced-motion:reduce){.ph-v .vp{transition:none}}

/* ===== mag.css ===== */
/* ===== D5 美食雜誌層＋文字排版重整（載入順序在 design.css 之後） ===== */

/* --- C11/C12 字級節奏 --- */
:root{--fs-body:15px;--lh-body:1.8;--fs-aux:13px}
body{font-size:var(--fs-body);line-height:var(--lh-body);font-variant-numeric:tabular-nums}
h1,h2,h3,h4{letter-spacing:-.01em;word-break:keep-all;overflow-wrap:anywhere}
@supports (text-wrap:balance){h1,h2,h3,.cv-lead,.pq p{text-wrap:balance}}
p{max-width:68ch}
.ey,.hd .ey,.rank-col>h3 .ey{font-size:11px;letter-spacing:.16em;color:var(--gold);font-variant-numeric:tabular-nums}
.sh .ey span{color:var(--ink-2)}
.hero h1{font-size:34px;line-height:1.2}
.sh h2{font-size:26px;margin-top:8px;line-height:1.25}
.sec{padding:56px 0}
.sh{margin-bottom:24px;align-items:flex-end}
.sh h2::after{font-size:12px}
.dc .nm,.card .nm,.bc .nm{font-size:17px}
.sh .lk,.sub .lk{font-size:var(--fs-aux)}
.num,.pr,.rank-no,.rank-pr b,.pd-price .num,.hc-cap .pr,.fig,.pno,.mh,.toc-ls i{font-family:var(--num);font-variant-numeric:tabular-nums}
.sub h3{font-size:20px}
.sub{margin:32px 0 16px}
@media (min-width:768px){
:root{--fs-body:16px}
.hero h1{font-size:56px}
.sh h2{font-size:36px}
.sec{padding:80px 0}
.sh{margin-bottom:32px}
.sh h2::after{font-size:13px}
}
@media (min-width:1024px){
.hero h1{font-size:64px;line-height:1.12}
.sh h2{font-size:40px}
.sec{padding:96px 0}
.sh{margin-bottom:40px}
}
@media (min-width:1440px){.hero h1{font-size:72px}}
/* 英文比中文小 1–2px，避免混排跳動 */
.sh h2 small,.hero h1 small,.kintro h1 small{font-family:var(--num);font-weight:400;font-size:.55em;letter-spacing:.02em}
.sub h3 .ey{font-size:11px;vertical-align:middle;margin-left:6px}

/* --- A1 插圖：手機不顯示、桌機整區淡出血背景 --- */
#picks .art-plate{display:none}
#journal{background:none}
#journal::before,#journal::after{display:none}
@media (min-width:1024px){
#picks{position:relative;isolation:isolate;overflow:hidden}
#picks::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../img/art-plate.webp) right center/cover no-repeat;opacity:.11;pointer-events:none}
#picks::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg) 0,rgba(251,246,238,.55) 30%,rgba(251,246,238,.15) 70%,var(--bg) 100%),linear-gradient(90deg,var(--bg) 0 30%,transparent 70%);pointer-events:none}
#journal{position:relative;isolation:isolate;overflow:hidden}
#journal::before{content:"";display:block;position:absolute;inset:0;z-index:-2;background:url(../img/art-table.webp) right 40%/cover no-repeat;opacity:.1;pointer-events:none}
#journal::after{content:"";display:block;position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,var(--bg) 0,rgba(251,246,238,.5) 35%,rgba(251,246,238,.2) 70%,var(--bg) 100%),linear-gradient(90deg,var(--bg) 0 25%,transparent 65%);pointer-events:none}
#journal .ed{background:transparent}
}

/* --- B4 刊頭 masthead --- */
.mh{background:#5E1630;border-bottom:1px solid rgba(201,162,74,.6);max-height:32px;overflow:hidden;transition:max-height 200ms,opacity 200ms;opacity:1}
.mh .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;height:32px;font-family:var(--num);font-weight:500;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(251,246,238,.82);white-space:nowrap}
.mh .mh-l{color:#FBF6EE;font-weight:600}.mh .mh-l .ap-wet{color:#C9A24A}
.mh .mh-c{display:none;flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis}
.mh .mh-r{color:#C9A24A}
.hd.is-scrolled .mh{max-height:0;opacity:0;border-bottom-width:0}
@media (min-width:600px){.mh .mh-c{display:block}.mh .wrap{font-size:12px}}
/* tst6: 600–1023 刊頭條縮字距避免中段被省略號截斷；600–767 只留左＋中 */
@media (min-width:600px) and (max-width:1023px){.mh .wrap{font-size:11px;letter-spacing:.08em;gap:16px}.mh .mh-c{text-overflow:clip}}
@media (min-width:600px) and (max-width:767px){.mh .mh-r{display:none}}
/* tst7: <600 手機刊頭條縮字距/縮 gap 讓左右兩段整行完整（4A，不隱藏任何段）；<380 字距再收 */
@media (max-width:599px){.mh .wrap{letter-spacing:.04em;gap:8px}.mh .mh-l,.mh .mh-r{flex:0 0 auto;min-width:0;overflow:visible}}
@media (max-width:379px){.mh .wrap{letter-spacing:.02em;gap:6px}.mh .mh-r{font-size:10px}}

/* --- B6 目錄 Contents --- */
.toc{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.toc .wrap{display:flex;align-items:center;gap:16px;height:52px}
.toc-l{flex:0 0 auto;font-family:var(--num);font-size:11px;letter-spacing:.16em;color:var(--gold);font-weight:600}
.toc-ls{list-style:none;display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.toc-ls::-webkit-scrollbar{display:none}
.toc-ls li{flex:0 0 auto}
.toc-ls a{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 10px;font-family:var(--serif);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--ink);white-space:nowrap;border-bottom:2px solid transparent;transition:color var(--t),border-color var(--t)}
.toc-ls a i{font-style:normal;font-family:var(--num);font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--ink-2)}
.toc-ls a:hover,.toc-ls a.on{color:var(--primary);border-bottom-color:var(--primary)}
.toc-ls a.on i{color:var(--primary)}
@media (min-width:1024px){.toc .wrap{height:56px;gap:32px}.toc-ls{gap:16px;overflow:visible}.toc-ls a{font-size:15px;padding:0 4px}}
#tonight,#kitchens,#picks,#rank,#journal,#how,#faq,#cover{scroll-margin-top:96px}

/* --- B5 封面故事 --- */
.cover{border-top:0;padding:56px 0}
.cv{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.cv-img{display:block;color:inherit}
.cv-fr{position:relative;display:block;aspect-ratio:4/5;padding:8px;border:1px solid var(--gold);background:var(--surface)}
.cv-fr::after{content:"";position:absolute;inset:4px;border:1px solid rgba(201,162,74,.45);pointer-events:none}
.cv-fr img,.cv-fr .noimg{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.cv-tx{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.cv-h{font-size:34px;line-height:1.2;margin:0}
.cv-h small{display:block;font-family:var(--num);font-weight:400;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-top:8px}
.cv-en{font-family:var(--num);font-style:italic;font-weight:400;font-size:22px;color:var(--gold);letter-spacing:-.01em;line-height:1.2;font-variation-settings:"opsz" 144}
.cv-lead{font-family:var(--serif);font-size:16px;line-height:1.9;max-width:34em}
.cv-lead::before{content:"";display:block;width:24px;height:1px;background:var(--gold);margin-bottom:12px}
.cv-meta{font-size:var(--fs-aux);color:var(--ink-2);padding-top:12px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
@media (min-width:1024px){
.cover{padding:96px 0}
.cv{grid-template-columns:42fr 58fr;gap:64px;align-items:center}.cv-img img{max-height:560px;object-fit:cover}
.cover{overflow:hidden}.cv-img{margin-left:-32px}
.cv-tx{position:sticky;top:120px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-auto-rows:max-content;gap:20px 40px;align-items:start}
.cv-tx > .ey{grid-column:1/-1}
.cv-h{grid-column:2;grid-row:2/span 4;justify-self:end;margin:0}
.cv-v{writing-mode:vertical-rl;text-orientation:mixed;display:block;font-size:40px;line-height:1.15;letter-spacing:.08em;max-height:480px}
.cv-v small{display:block;writing-mode:vertical-rl;margin:0 0 0 14px;letter-spacing:.24em;padding-top:4px}
.cv-en,.cv-lead,.cv-meta,.cv-tx .lk{grid-column:1}
}
@media (max-width:1023px){.cv-v{display:inline}.cv-v small{display:block}}

/* --- B7 圖說 --- */
.fig{margin-top:10px;padding-top:8px;border-top:1px solid var(--gold);font-family:var(--num);font-size:11px;letter-spacing:.1em;color:var(--ink-2);max-width:none;font-variant-numeric:tabular-nums;line-height:1.5}
.fig .fig-n{color:var(--primary);font-weight:600;margin-right:8px}
.fig .fig-d{margin-right:8px;color:var(--gold)}
.hc .fig{margin-top:8px;text-align:center}
.rank-row .fig{grid-column:1/-1;margin-top:6px;padding-top:6px;font-size:10px}
.pd-gal .fig{margin-top:12px}

/* --- B8 主廚語錄 --- */
.pq{padding:64px 0;text-align:center}
.pq + .sec{border-top:0}
.pq blockquote{max-width:28em;margin:0 auto}
.pq p{font-family:var(--serif);font-size:24px;line-height:1.5;letter-spacing:.02em;max-width:none;color:var(--ink);margin:0 auto}
.pq .pq-q{font-family:var(--num);font-style:italic;font-weight:400;color:var(--gold);font-size:1.4em;line-height:0;vertical-align:-.12em;margin:0 .1em;font-variation-settings:"opsz" 144}
.pq footer{margin-top:16px;font-family:var(--num);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
@media (min-width:768px){.pq p{font-size:32px}}
@media (min-width:1024px){.pq{padding:64px 0}.pq p{font-size:36px}}

/* --- B10 頁碼、刊尾 --- */
.sh{position:relative}
.sh .pno{position:absolute;right:0;top:0;font-family:var(--num);font-size:11px;letter-spacing:.14em;color:var(--ink-2);font-variant-numeric:tabular-nums}
.sh .pno::before{content:"";display:inline-block;width:20px;height:1px;background:var(--gold);vertical-align:middle;margin-right:8px}
.ft-fin{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font-family:var(--num);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding:0 0 32px;margin-bottom:32px;border-bottom:1px solid var(--line);text-align:center}
.ft-fin b{font-family:var(--serif);font-weight:600;color:var(--primary);letter-spacing:.06em;text-transform:none}
.ft-fin::before,.ft-fin::after{content:"";width:32px;height:1px;background:var(--gold)}

/* --- B9 雙欄導言 / 品評體 --- */
.kintro p{font-family:var(--serif);font-size:15px;line-height:1.9;margin-top:16px}
.kintro p::before{content:"";display:block;width:24px;height:1px;background:var(--gold);margin-bottom:12px}
@media (min-width:1024px){.kintro p{max-width:52em;font-size:16px}}
.tst{display:grid;grid-template-columns:minmax(0,1fr);gap:24px}
.tst-s{padding-top:16px;border-top:1px solid var(--line)}
.tst-h{font-family:var(--serif);font-size:20px;margin:0 0 12px}
.tst-h .ey{display:block;font-style:italic;font-weight:400;font-size:11px;letter-spacing:.16em;margin-bottom:8px;text-transform:uppercase}
.tst-h .ey::after{content:"";display:inline-block;width:20px;height:1px;background:var(--gold);vertical-align:middle;margin-left:10px}
.tst .prose{max-width:68ch}
.tst .prose p{line-height:1.8}
.tst .prose p:first-of-type::before{content:"";display:block;width:24px;height:1px;background:var(--gold);margin-bottom:12px}
@media (min-width:768px){.tst{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.tst-s{padding-top:20px}}

/* --- A3 手機價格不截 --- */
@media (max-width:420px){.pr{padding-right:36px;font-size:14px}}
.fig{display:block}
.rank-row .fig{display:block}
.pd-notes .pd-rules-wrap{grid-template-columns:minmax(0,1fr);margin-top:0;padding-top:0;border-top:0}
.pd-notes .pd-rules-wrap > div{max-width:68ch}
.pd-rules li:last-child{border-bottom:0}

/* --- D5 追加：全站去白底（--surface 已改亞麻 #F7F1E8；互動元件改透明＋髮絲線） --- */
.hero-script{display:none!important}
.sel,.kc,.ob,.kb-f,.dice,.kb-sort select,.kpg .page-numbers,.kp-rng input[type=number],.pd-svc li,.qv-svc span,.dish.cv2 .cb-svc span{background:transparent;border:1px solid var(--line)}
.sel,.kc{border-color:var(--gold)}
.ob,.kb-f,.dice{border-color:var(--ink)}
.dice{border-color:var(--gold)}
.cm,.dr,.cs,.pd-bar,.tb,.kp,.gd-toc-m,.gd-prose .gd-ins,.bk-list .bki,.bk-msg,.rank-col,.dish.cv2 .flip,.dish.cv2 .cf,.dish.cv2 .cb,.pd-dlg p{background:var(--surface-2)}
.tb{background:rgba(243,235,223,.96)}
.cm,.dr,.cs{border:1px solid var(--line)}
.hc-f{background:transparent}
#journal .ed{background:transparent}
.toc,.cv-fr{background:transparent}
.kt:hover{background:var(--surface-2)}

/* --- Q1 減法＋高級餐廳感（2026-09-19） --- */
.pno{display:none}
.ft-fin{font-size:9px;letter-spacing:.14em}.ft-fin b{font-size:11px}
.toc{display:none}
@media (min-width:1024px){.toc{display:block}}
.sec{padding:64px 0}
@media (min-width:1024px){.sec{padding:112px 0}.cover{padding:112px 0}}
@media (min-width:1024px){.hero-v2{min-height:min(72vh,720px);max-height:860px;display:flex;align-items:center}.hero-v2 .wrap{width:100%;align-items:center}.hc{width:min(100%,520px)}}
/* 卡片 No. 只在桌機 hover 淡入 */
.dish.cv2 .cf .no{opacity:0;transition:opacity var(--t)}
@media (hover:hover) and (pointer:fine){.dish.cv2:hover .cf .no,.dish.cv2:focus-within .cf .no{opacity:1}}
.dish.cv2 .cb .no{opacity:1}
/* 橫式列表卡 手機排版 */
.krow{grid-template-columns:72px minmax(88px,1fr) auto;gap:12px}
.krow .ph{width:72px}
.krow > div:nth-child(2){min-width:88px}
.krow .sp{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 品評體：單欄 */
.tst.tst-1{grid-template-columns:minmax(0,1fr)}
/* 文章首圖佔位 */
.ph-art{width:100%;height:100%;object-fit:cover;object-position:right center;display:block}
/* pull quote 引號不壓字 */
.prose blockquote{padding-left:28px}
.prose blockquote::before{left:4px;top:-6px;font-size:36px;background:transparent;padding:0}

/* --- D6（2026-09-19 Allen 手機回饋）：底色奶油／亞麻交替、榜單髮絲線、封面故事手機版 --- */
.band-linen,.band-linen + .sec,.band-linen + .pq,.pq + .sec,.sec + .pq{border-top:0}
.pq.band-linen{background:var(--surface-2)}
.band-linen .rank-col{background:transparent;border:0;border-radius:0;box-shadow:none;padding-left:0;padding-right:0}
.band-linen .rank-col>h3{border-bottom:1px solid rgba(201,162,74,.45)}
.band-linen .rank-row{border-bottom-color:var(--line);margin:0;padding-left:0;padding-right:0}
.band-linen .rank-row:hover,.band-linen .rank-row:focus-visible{background:rgba(255,252,247,.55)}
@media (max-width:1023px){
.band-linen .rank-cols{gap:0}
.band-linen .rank-col{flex:0 0 84vw;max-width:400px;padding-right:16px;margin-right:16px;border-right:1px solid rgba(201,162,74,.35)}
.band-linen .rank-col:last-child{border-right:0;margin-right:0}
}
@media (min-width:1024px){
.band-linen .rank-cols{gap:0}
.band-linen .rank-col{padding:2px 32px 8px;border-left:1px solid rgba(201,162,74,.35)}
.band-linen .rank-col:first-child{padding-left:0;border-left:0}
.band-linen .rank-col:last-child{padding-right:0}
}
/* 封面故事：手機圖在上（4:3、最高 320px、金框）、標題橫排 */
@media (max-width:1023px){
.cover{padding-top:48px;padding-bottom:48px}
.cv{gap:24px}
.cv-img{display:block;width:100%}
.cv-fr{aspect-ratio:4/3;max-height:320px;width:100%;border-radius:0}
.cv-fr img,.cv-fr .noimg{position:absolute;inset:8px;width:auto;height:auto}
.cv-tx{gap:12px}
.cv-h{font-size:30px}
.cv-v{display:inline;writing-mode:horizontal-tb;max-height:none;letter-spacing:0}
.cv-v small{display:block;writing-mode:horizontal-tb;margin:8px 0 0;padding:0}
.cv-en{font-size:20px}
}
/* 品牌欄酒紅（Allen 2026-09-19「都加」）：masthead 更深、logo 欄 #5E1630、奶油字、金點綴 */
.mh{background:#4A1126}
.hd{background:#5E1630;border-bottom:1px solid rgba(201,162,74,.45)}
.hd.is-scrolled{background:rgba(94,22,48,.92);border-bottom-color:rgba(201,162,74,.5)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.hd.is-scrolled{background:rgba(94,22,48,.98)}}
.hd .logo img{height:38px;width:auto}
.hd .logo span{color:#FBF6EE;font-size:18px;font-weight:600;letter-spacing:.04em}
.hd .logo span .ap-wet{color:var(--gold)}
.hd .nav a{color:rgba(251,246,238,.85)}
.hd .nav a:hover,.hd .nav a[aria-current]{color:#FBF6EE}
.hd .nav a::after{background:var(--gold)}
.hd .ic{color:#FBF6EE}
.hd .city>a,.hd .city>button{color:rgba(251,246,238,.9)}
.hd .btn.btn-primary{background:var(--gold);color:#3B0D1F;border-color:var(--gold)}
.hd .btn.btn-primary:hover{background:#D9B45E}
.hd .btn.btn-primary.dis{background:rgba(251,246,238,.18);color:rgba(251,246,238,.55);border-color:transparent}
.hd .tgb{border-color:rgba(251,246,238,.5);color:#FBF6EE}

/* --- D7 footer 菜單封底（淺色版與酒窖版共用版面） --- */
.ft{padding:32px 0 24px;background:var(--surface);border-top:1px solid rgba(201,162,74,.45)}
.ft .ft-top{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.ft .ft-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.ft .ft-logo img{height:44px;width:44px}.ft .ft-logo .lk-t{display:flex;flex-direction:column;line-height:1.05}.ft .ft-logo .lk-t b{font-family:var(--num);font-weight:600;font-size:15px;letter-spacing:.16em;color:var(--ink)}.ft .ft-logo .lk-t i{font-style:normal;font-family:var(--serif);font-size:12px;letter-spacing:.18em;color:var(--ink-2);margin-top:3px}.ft .ft-logo .lk-t i .ap-wet{color:var(--gold);font-size:1em}
.ft .ft-tag{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin:0;font-size:14px;color:var(--ink)}
.ft .ft-tag b{font-family:var(--serif);font-weight:600;font-size:16px;letter-spacing:.02em}
.ft .ft-tag .ft-hrs{font-family:var(--num);font-weight:600;font-size:13px;letter-spacing:.14em;color:var(--primary)}
/* V3 footer 精簡版：一列橫排小連結 + 訂位列（廚房/菜單清單頁面上方與 Tab Bar 已有） */
.ft .ft-nav{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;padding:20px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:14px}
.ft .ft-nav a{display:inline-flex;align-items:center;min-height:36px;color:var(--ink);letter-spacing:.04em}
.ft .ft-nav a:not(:last-child)::after{content:"·";color:var(--gold);margin:0 12px}
.ft .ft-nav a:hover{color:var(--primary)}
.ft .ft-res{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:20px 0 0}
.ft .ft-cta{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.ft .ft-cta .btn{height:40px;padding:0 18px;font-size:14px}
.ft .ft-cta .ob{height:40px;padding:0 14px;font-size:14px}
.ft .ft-cta .ob svg{width:16px;height:16px}
.ft .ft-hint{font-size:12px;color:var(--ink-2);margin:0;letter-spacing:.04em}
.ft .bt{margin-top:32px;padding-top:16px;border-top:1px solid var(--gold);color:var(--ink-2)}
.ft .ft-fin{display:flex;justify-content:center;gap:8px;margin-top:16px;font-family:var(--num);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.ft .ft-fin i{font-style:normal;color:var(--gold)}
@media (min-width:768px){
.ft{padding:56px 0 32px}
.ft .ft-top{flex-direction:row;align-items:center;justify-content:space-between}
.ft .ft-nav a:not(:last-child)::after{margin:0 16px}
}
/* --- D7 料理頁底部條：酒紅底奶油字、金色訂位鈕（淺色版也套用；放 mag.css 尾端蓋過上面 D5 的 --surface-2） --- */
.pd-bar{background:#5E1630;border-top:1px solid rgba(201,162,74,.6);color:#FBF6EE;box-shadow:0 -8px 24px rgba(34,26,23,.18)}
.pd-bar .num{color:#FBF6EE}
.pd-bar .num sup{color:rgba(251,246,238,.8)}
.pd-bar small{color:rgba(251,246,238,.72)}
.pd-bar .btn{background:var(--gold);color:#3B0D1F;font-weight:600}
.pd-bar .btn:hover{background:#D9B45E;color:#3B0D1F}
/* logo 在酒紅底不明顯（Allen）：放大＋金色光暈＋金環 */
.hd .logo{gap:12px}
.hd .logo img{height:44px;width:auto;padding:4px;border-radius:50%;border:1px solid rgba(201,162,74,.55);background:rgba(251,246,238,.06);filter:drop-shadow(0 0 6px rgba(201,162,74,.55)) brightness(1.08)}
.hd .logo span{font-size:20px;letter-spacing:.06em;text-shadow:0 0 8px rgba(0,0,0,.25)}
@media (min-width:1024px){.hd .logo img{height:48px}.hd .logo span{font-size:22px}}
/* logo lockup v2（向量 mark + 真字型字標） */
.hd .logo.lk{gap:10px;align-items:center}
.hd .logo.lk img.lk-m{height:40px;width:40px;padding:0;border:0;background:none;filter:none;border-radius:0}
.hd .logo.lk .lk-t{display:flex;flex-direction:column;line-height:1.05}
.hd .logo.lk .lk-t b{font-family:var(--num);font-weight:600;font-size:15px;letter-spacing:.16em;color:#FBF6EE;text-shadow:none}
.hd .logo.lk .lk-t i{font-style:normal;font-family:var(--serif);font-size:12px;letter-spacing:.18em;color:rgba(251,246,238,.78);margin-top:3px;text-shadow:none}
.hd .logo.lk .lk-t i .ap-wet{color:var(--gold);font-size:1em}
@media (min-width:1024px){.hd .logo.lk img.lk-m{height:44px;width:44px}.hd .logo.lk .lk-t b{font-size:17px}.hd .logo.lk .lk-t i{font-size:13px}}
/* F1 字體收斂：全站只用 Noto Serif TC + Fraunces；正文字重 400、字距略放 */
body{font-weight:400;letter-spacing:.03em}
.nav a,.btn,.ob,.chip,.tb a,.tb button,.sel,.kp label,.kp button,select,input,button{font-family:var(--serif)}
.btn{letter-spacing:.08em}
/* F2 秀氣字體：標題/品牌/選單用 Cactus Classical Serif，內文 Noto Serif TC 400；mark 改奶油實心 */
:root{--serif:"Cactus Classical Serif","Noto Serif TC","PingFang TC",serif}
h1,h2,h3,.nav a,.logo .lk-t i,.sh h2,.pd-info h1,.cv-t,.rank-col h3,.ki-m b,.ki-r a,.faq summary,.ft .ft-nav{font-family:var(--serif);font-weight:400;letter-spacing:.02em}
h1{letter-spacing:.01em}
.hd .logo.lk img.lk-m{filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
/* 手機區塊標題列：骰子鈕換行到下一列、篩選鈕不折字 */
@media (max-width:767px){.sh{flex-wrap:wrap;align-items:center}.sh h2{flex:1 1 100%}.sh .dice,.sh .ob{white-space:nowrap}.sh .dice{order:3}.sh>.ob{margin-left:auto}}
/* W1 文章插圖 */
.prose .w1-fig{margin:28px 0;padding:0}
.prose .w1-fig img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-img)}
@media (min-width:1024px){.prose .w1-fig{margin:36px 0}}
/* W2 文章頁場景背景：固定滿版、奶油遮罩讓正文可讀；wine/mix 變體的文章頁本身是淺色區，同樣用奶油遮罩 */
.jn-bg{position:fixed;inset:0;z-index:-1;background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:none}
.jn-bg::after{content:"";position:absolute;inset:0;background:rgba(251,246,238,.90);backdrop-filter:blur(2px)}
.jn-single,.gd-single{background:transparent}
.jn-single .wrap,.gd-single .wrap{position:relative}
@media (min-width:1024px){.jn-bg::after{background:linear-gradient(90deg,rgba(251,246,238,.97) 0 30%,rgba(251,246,238,.88) 70%,rgba(251,246,238,.80) 100%)}}
.jn-hero{aspect-ratio:3/2}
.gd-hero{aspect-ratio:3/2}
@media (min-width:1024px){.ph.gd-hero,.ph.jn-hero{aspect-ratio:3/2}}

/* --- tst5 商品頁各 section 交界收緊（只作用 body.single-product；不動全站 .sec）--- */
.single-product .sec.pd-notes{padding:40px 0 22px}
.single-product .sec.pd-same{padding:40px 0 32px}
@media (min-width:1024px){.single-product .sec.pd-notes{padding:64px 0 46px}.single-product .sec.pd-same{padding:64px 0 56px}}

/* ===== banner.css ===== */
/* ===== 橫幅靚照（關於頁 hero / 段落大圖、主廚手記與食記列表橫幅）=====
   .ab-hero 放在 <section class="page"> 之前、獨立於 .wrap（自然滿版，不用出血 hack）
   遮罩：固定酒紅 rgba(59,13,31)（theme-wine 下 --primary 會變金色，不能用變數），由下往上 .6→.12，上限 .6 */
.ab-hero{position:relative;display:flex;align-items:flex-end;min-height:clamp(260px,72vw,380px);overflow:hidden;isolation:isolate;background:#3B0D1F;color:#FBF6EE}
.ab-hero-bg{position:absolute;inset:0;z-index:-2;display:block}
.ab-hero-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.ab-hero-bl{position:absolute;inset:0;z-index:-3;display:none;width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.ab-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(59,13,31,.1) 0%,rgba(59,13,31,.22) 40%,rgba(59,13,31,.52) 68%,rgba(59,13,31,.6) 100%)}
.ab-hero-in{position:relative;width:100%;padding-top:32px;padding-bottom:24px}
.ab-hero .ey{color:#C9A24A;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 12px rgba(0,0,0,.35)}
.ab-hero h1{font-family:var(--serif);font-size:28px;line-height:1.3;margin:6px 0 0;color:#FBF6EE;text-shadow:0 1px 3px rgba(0,0,0,.55),0 8px 24px rgba(0,0,0,.25);letter-spacing:-.01em;text-wrap:balance}
.ab-hero .jn-lead,.ab-hero-lead{color:rgba(251,246,238,.88);font-size:15px;line-height:1.7;max-width:60ch;margin:8px 0 0;text-shadow:0 1px 2px rgba(0,0,0,.5)}
/* 列表頁矮版 */
.ab-hero--list{min-height:clamp(280px,64vw,320px)}
.ab-hero--list .ab-hero-bg img{object-position:50% 28%}
.ab-hero--list .ab-hero-in{padding-top:24px;padding-bottom:20px}
.ab-hero--list h1{font-size:22px}
.ab-hero--list .jn-lead{font-size:14px}
/* hero 之後的 .page 上緣收緊 */
.ab-hero + .page{padding-top:24px}
/* 深色主題：遮罩加深一點（仍 ≤ .6） */
body.theme-wine .ab-hero::before{background:linear-gradient(180deg,rgba(59,13,31,.2) 0%,rgba(59,13,31,.35) 40%,rgba(59,13,31,.58) 68%,rgba(59,13,31,.6) 100%)}
body.theme-wine .ab-hero+.page,body.theme-mix .ab-hero+.page{border-top:1px solid rgba(201,162,74,.45)}

/* ===== 段落間大圖 .ab-fig（關於頁）：手機出血 4:5、桌機 16:9 圓角 2px、下方 Fig. 圖說 ===== */
.ab-fig{margin:24px calc(50% - 50vw) 32px;padding:0;max-width:none}
.ab-fig picture,.ab-fig img{display:block;width:100%}
.ab-fig img{aspect-ratio:4/5;height:auto;object-fit:cover;object-position:50% 50%;border-radius:0}
.ab-fig .fig{margin:10px 16px 0}
.ab-fig .fig .fig-t{color:var(--ink)}
.ab-about .entry{max-width:72ch}
.ab-about .entry h2:first-child{margin-top:0}

@media (min-width:768px){
.ab-hero{min-height:clamp(380px,34vw,520px)}
.ab-hero-bg img{object-position:50% 45%}
.ab-hero-in{padding-top:48px;padding-bottom:40px}
.ab-hero h1{font-size:40px}
.ab-hero .jn-lead,.ab-hero-lead{font-size:16px;margin-top:12px}
.ab-hero--list .jn-lead{font-size:15px}
.ab-hero--list{min-height:clamp(300px,25vw,340px)}
.ab-hero--list .ab-hero-bg img{object-position:50% 30%}
.ab-hero--list .ab-hero-in{padding-bottom:32px}
.ab-hero--list h1{font-size:32px}
.ab-hero + .page{padding-top:40px}
.ab-fig{margin:32px 0 40px;max-width:960px}
.ab-fig img{aspect-ratio:16/9;border-radius:2px}
.ab-fig .fig{margin:12px 0 0}
}
@media (min-width:1024px){
.ab-hero h1{font-size:48px}
.ab-hero--list h1{font-size:36px}
/* 直式來源（寬不足 1600）的列表橫幅：底層墊 q1-blur，主圖置中最寬 1200、兩側漸隱 */
.ab-hero--narrow .ab-hero-bl{display:block}
.ab-hero--narrow .ab-hero-bg{left:50%;width:min(100%,1000px);transform:translateX(-50%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
}
@media (prefers-reduced-motion:reduce){.ab-hero-bl{transform:none}}

/* ===== 列表橫幅 V1（2026-09-20）：食記／主廚手記改用 AI 餐廳場景圖（scene-*-wide 1600×560、手機 scene-*-tall 1080×1080），滿版＋左側酒紅漸層讓文字落在色塊上；手機改由下往上 ===== */
.ab-hero--scene .ab-hero-bg img{object-position:50% 50%}
.ab-hero--scene::before{background:linear-gradient(180deg,rgba(59,13,31,.15) 0%,rgba(59,13,31,.35) 40%,rgba(59,13,31,.82) 72%,rgba(59,13,31,.94) 100%)}
@media (min-width:768px){
.ab-hero--scene::before{background:linear-gradient(90deg,rgba(59,13,31,.96) 0%,rgba(59,13,31,.96) 34%,rgba(59,13,31,.55) 56%,rgba(59,13,31,.08) 78%,rgba(59,13,31,0) 100%),linear-gradient(180deg,rgba(59,13,31,0) 55%,rgba(59,13,31,.35) 100%)}
.ab-hero--scene.ab-hero--list{min-height:clamp(320px,26vw,380px)}
.ab-hero--scene .ab-hero-in{padding-top:56px}
}
body.theme-wine .ab-hero--scene::before{background:linear-gradient(180deg,rgba(59,13,31,.2) 0%,rgba(59,13,31,.4) 40%,rgba(59,13,31,.85) 72%,rgba(59,13,31,.95) 100%)}
@media (min-width:768px){body.theme-wine .ab-hero--scene::before{background:linear-gradient(90deg,rgba(59,13,31,.97) 0%,rgba(59,13,31,.97) 34%,rgba(59,13,31,.6) 56%,rgba(59,13,31,.1) 78%,rgba(59,13,31,0) 100%),linear-gradient(180deg,rgba(59,13,31,0) 55%,rgba(59,13,31,.4) 100%)}}

/* ===== wine.css ===== */
/* ===== D7 酒窖版色票變體（?theme=wine）：只靠 body.theme-wine 覆蓋，不改其他檔 ===== */
body.theme-wine{--bg:#3B0D1F;--surface:#4A1126;--surface-2:#5E1630;--ink:#FBF6EE;--ink-2:rgba(251,246,238,.72);--line:rgba(201,162,74,.28);--primary:#C9A24A;--primary-deep:#B08A35;--primary-soft:rgba(201,162,74,.14);--gold:#C9A24A;--gold-soft:rgba(201,162,74,.12);--float:0 8px 24px rgba(0,0,0,.35);background:#3B0D1F;color:#FBF6EE}
body.theme-wine::before{mix-blend-mode:screen;opacity:.05}
/* 文字 / 連結 */
body.theme-wine .ap-wet{color:#C9A24A}
body.theme-wine .lk{text-decoration-color:#C9A24A;color:#FBF6EE}
body.theme-wine .lk:hover{text-decoration-color:#FBF6EE}
body.theme-wine .sh h2::after,body.theme-wine .step i,body.theme-wine .faq summary::after{color:#C9A24A}
/* 按鈕 */
body.theme-wine .btn,body.theme-wine .sform button,body.theme-wine .kpg .page-numbers.current,body.theme-wine .jn-pgn .current{background:#C9A24A;color:#3B0D1F;border-color:#C9A24A}
body.theme-wine .btn:hover,body.theme-wine .sform button:hover{background:#D9B45E;color:#3B0D1F}
body.theme-wine .btn.btn-primary{background:#C9A24A;color:#3B0D1F}
body.theme-wine .btn.btn-primary:hover{background:#D9B45E}
body.theme-wine .btn.dis,body.theme-wine .hd .btn.btn-primary.dis{background:rgba(251,246,238,.14);color:rgba(251,246,238,.55);border-color:transparent}
body.theme-wine .ob,body.theme-wine .btn-ghost,body.theme-wine .kb-f,body.theme-wine .dice,body.theme-wine .tgb{background:transparent;border-color:#C9A24A;color:#FBF6EE}
body.theme-wine .ob:hover,body.theme-wine .btn-ghost:hover,body.theme-wine .kb-f:hover,body.theme-wine .dice:hover{border-color:#FBF6EE;color:#FBF6EE;background:rgba(201,162,74,.14)}
body.theme-wine .bk-n{background:#C9A24A;color:#3B0D1F}
/* masthead / header：保持酒紅、邊線金 */
body.theme-wine .mh{background:#2E0A18;border-bottom-color:rgba(201,162,74,.6)}
body.theme-wine .hd{background:#4A1126;border-bottom:1px solid rgba(201,162,74,.5)}
body.theme-wine .hd.is-scrolled{background:rgba(74,17,38,.92);border-bottom-color:rgba(201,162,74,.6);box-shadow:none}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){body.theme-wine .hd.is-scrolled{background:rgba(74,17,38,.98)}}
body.theme-wine .cm{background:#4A1126;border-color:rgba(201,162,74,.4);color:#FBF6EE}
body.theme-wine .cm a:hover{background:rgba(201,162,74,.14);color:#C9A24A}
body.theme-wine .toc{background:transparent;border-color:rgba(201,162,74,.28)}
body.theme-wine .toc-ls a{color:#FBF6EE}
body.theme-wine .toc-ls a:hover,body.theme-wine .toc-ls a[aria-current]{color:#C9A24A;border-bottom-color:#C9A24A}
/* Tab Bar */
body.theme-wine .tb{background:#5E1630;border-top-color:rgba(201,162,74,.45);-webkit-backdrop-filter:none;backdrop-filter:none}
body.theme-wine .tb a,body.theme-wine .tb button{color:rgba(251,246,238,.82)}
body.theme-wine .tb a[aria-current]{color:#C9A24A}
/* gate 餐巾遮罩 */
body.theme-wine .gate{background:#3B0D1F;color:#FBF6EE}
body.theme-wine .gate .in{border-color:#C9A24A}
body.theme-wine .gate .in::before{border-color:rgba(201,162,74,.35)}
body.theme-wine .gate p{color:rgba(251,246,238,.72)}
/* hero：底圖降到 .25，蓋深酒紅漸層 */
body.theme-wine .hero-v2 :is(.hero-bg,.hero-v){opacity:.85;filter:saturate(1)}
body.theme-wine .hero-v2::before{background:linear-gradient(180deg,rgba(59,13,31,.6) 0 18%,rgba(59,13,31,.38) 55%,rgba(59,13,31,.18) 100%)}
@media (min-width:768px){body.theme-wine .hero-v2::before{background:linear-gradient(90deg,rgba(59,13,31,.72) 0 26%,rgba(59,13,31,.4) 50%,rgba(59,13,31,.08) 100%)}}
body.theme-wine .hero-sign{text-shadow:0 1px 4px rgba(0,0,0,.6)}body.theme-wine .hero-v2 .pick,body.theme-wine .hero-v2 .pick *{text-shadow:none}
body.theme-wine .hero h1 small{color:#C9A24A}
body.theme-wine .hero .sl{color:rgba(251,246,238,.78)}
body.theme-wine .hc-f{border-color:#C9A24A;background:transparent}
body.theme-wine .hc-s{background:#5E1630}
body.theme-wine .plate .tag{background:#4A1126;border-color:rgba(201,162,74,.4);color:#FBF6EE}
/* 區塊底 */
body.theme-wine .band-linen,body.theme-wine .pq.band-linen{background:#4A1126}
body.theme-wine #picks::after{background:linear-gradient(180deg,#3B0D1F 0,rgba(59,13,31,.7) 30%,rgba(59,13,31,.4) 70%,#3B0D1F 100%),linear-gradient(90deg,#3B0D1F 0 30%,transparent 70%)}
body.theme-wine #journal::before{background:#3B0D1F;opacity:.9}
body.theme-wine #journal::after{background:linear-gradient(180deg,#3B0D1F 0,rgba(59,13,31,.7) 35%,rgba(59,13,31,.4) 70%,#3B0D1F 100%),linear-gradient(90deg,#3B0D1F 0 25%,transparent 65%)}
body.theme-wine #journal .ed{background:transparent}
body.theme-wine #picks .art-plate{mix-blend-mode:screen;opacity:.55}
body.theme-wine .kg{background:rgba(201,162,74,.28);border-color:rgba(201,162,74,.28)}
body.theme-wine .kt{background:#3B0D1F}
body.theme-wine .kt:hover{background:#4A1126}
body.theme-wine .ki-rest,body.theme-wine .ki-r{border-color:rgba(201,162,74,.35)}
body.theme-wine .ki-r,body.theme-wine .mn-l,body.theme-wine .rank-nm{color:#FBF6EE}
body.theme-wine .trust{border-top-color:#C9A24A}
body.theme-wine .empty{border-color:rgba(201,162,74,.4);color:rgba(251,246,238,.72)}
body.theme-wine .empty b{color:#FBF6EE}
/* 圖片：深底更順；blur-up 骨架 */
body.theme-wine .ph{background:#5E1630}
body.theme-wine .ph img{filter:saturate(.92) contrast(1.02)}
body.theme-wine .ph img:not(.ok){filter:blur(12px) saturate(.92)}
body.theme-wine .noanim .ph img,body.theme-wine.noanim .ph img{filter:saturate(.92) contrast(1.02)!important}
body.theme-wine .noimg{background:linear-gradient(135deg,#5E1630,rgba(201,162,74,.18))}
body.theme-wine .rank-img,body.theme-wine .krow .ph{background:#5E1630}
/* 卡片：底 #4A1126、章/ribbon 金框、chip 奶油字 */
body.theme-wine .dish.cv2 .cf,body.theme-wine .dish.cv2 .cb,body.theme-wine .rank-col,body.theme-wine .bk-list .bki,body.theme-wine .bk-msg,body.theme-wine .gd-prose .gd-ins,body.theme-wine .gd-toc-m{background:#4A1126;border-color:rgba(201,162,74,.35);color:#FBF6EE}
body.theme-wine .dish.cv2 .flip{background:#4A1126;border-color:rgba(201,162,74,.5);color:#FBF6EE}
body.theme-wine .dish.cv2 .flip:hover{color:#C9A24A;border-color:#C9A24A}
body.theme-wine .dish.cv2 .cb-svc span,body.theme-wine .pd-svc li,body.theme-wine .qv-svc span{background:transparent;border-color:rgba(201,162,74,.4);color:rgba(251,246,238,.85)}
body.theme-wine .dish.cv2 .cb-ex,body.theme-wine .dish.cv2 .cb h4{color:#FBF6EE}
body.theme-wine .dish.cv2 .cb-meta{border-top-color:rgba(201,162,74,.28)}
body.theme-wine .chip,body.theme-wine .dish.cv2 .chip,body.theme-wine .qv-ph .chip{background:rgba(46,10,24,.55);color:#FBF6EE;border:1px solid rgba(201,162,74,.85);text-shadow:none}
body.theme-wine .dish.cv2 .st.on{color:#C9A24A;border-color:#C9A24A;outline-color:#C9A24A;background:rgba(59,13,31,.85);mix-blend-mode:normal;opacity:1}
body.theme-wine .dish.cv2 .st.off{color:rgba(251,246,238,.72);background:rgba(59,13,31,.85)}
body.theme-wine .dish.cv2 .pk{background:#C9A24A;color:#3B0D1F}
body.theme-wine .dish.cv2 .rb{background:#2E0A18;color:#C9A24A;border-top:1px solid #C9A24A;border-bottom:1px solid #C9A24A}
body.theme-wine .dish.cv2 .pd i{background:rgba(251,246,238,.7);border-color:rgba(46,10,24,.4)}
body.theme-wine .pr b,body.theme-wine .krow .sp b,body.theme-wine .sc b{color:#FBF6EE}
body.theme-wine .st.on::before{background:#C9A24A}
body.theme-wine .flag{border-color:rgba(251,246,238,.35)}
/* 篩選列 / 輸入 / 下拉 */
body.theme-wine .sel,body.theme-wine .kc{background:transparent;border-color:#C9A24A;color:#FBF6EE}
body.theme-wine .sel button{color:rgba(251,246,238,.72)}
body.theme-wine .sel button:hover{color:#C9A24A}
body.theme-wine input,body.theme-wine select,body.theme-wine textarea,body.theme-wine .sform input,body.theme-wine .kp-rng input[type=number],body.theme-wine .kb-sort select{background:#4A1126;color:#FBF6EE;border-color:rgba(201,162,74,.4);color-scheme:dark}
body.theme-wine input::placeholder,body.theme-wine textarea::placeholder{color:rgba(251,246,238,.5)}
body.theme-wine .kp{background:#4A1126;border-color:rgba(201,162,74,.35);color:#FBF6EE}
body.theme-wine .kp-seg,body.theme-wine .kp-seg label+label,body.theme-wine .kp-cups label,body.theme-wine .kp-pr label,body.theme-wine .kp-g,body.theme-wine .kp-act{border-color:rgba(201,162,74,.35)}
body.theme-wine .kp-seg label:has(:checked),body.theme-wine .kp-cups label:has(:checked),body.theme-wine .kp-pr label:has(:checked){background:rgba(201,162,74,.16);border-color:#C9A24A;color:#C9A24A}
body.theme-wine .kp-seg input:checked+span{color:#C9A24A}
body.theme-wine .kp-tg i{background:rgba(251,246,238,.25)}
body.theme-wine .kp-tg i::after{background:#FBF6EE}
body.theme-wine .kp-tg input:checked+i{background:#C9A24A}
body.theme-wine .kp-cks input,body.theme-wine .kp-cups input,body.theme-wine .dr input[type=checkbox],body.theme-wine .dr input[type=radio],body.theme-wine .dr input[type=range]{accent-color:#C9A24A}
body.theme-wine .kpg .page-numbers,body.theme-wine .jn-pgn a{border-color:rgba(201,162,74,.4);color:#FBF6EE}
body.theme-wine .gd-chips a{background:transparent;border-color:rgba(201,162,74,.4);color:#FBF6EE}
body.theme-wine .prose blockquote::before{background:#3B0D1F}
/* 抽屜 / 浮層 / 菜籃 sheet / #menu 覆蓋層 / qv dialog / 影片 dialog */
body.theme-wine .ov,body.theme-wine .cs-ov,body.theme-wine .kp-bk{background:rgba(20,4,10,.6)}
body.theme-wine .dr,body.theme-wine .cs{background:#4A1126;border-color:rgba(201,162,74,.4);color:#FBF6EE}
body.theme-wine .dr .dh,body.theme-wine .dr .df,body.theme-wine .dr fieldset,body.theme-wine .cs-h{border-color:rgba(201,162,74,.28)}
body.theme-wine .cs p,body.theme-wine .dr legend{color:rgba(251,246,238,.85)}
body.theme-wine .mn{background:#3B0D1F;color:#FBF6EE}
body.theme-wine .mn-h{border-bottom-color:rgba(201,162,74,.35)}
body.theme-wine .mn-l,body.theme-wine .mn-k{border-bottom-color:rgba(201,162,74,.45)}
body.theme-wine .mn-l:hover,body.theme-wine .mn-l:active,body.theme-wine .mn-k a:hover,body.theme-wine .mn-k a:active{color:#C9A24A}
body.theme-wine .mn-k a{color:rgba(251,246,238,.8)}
body.theme-wine .mn-f{color:rgba(251,246,238,.6)}
body.theme-wine .qv{background:#3B0D1F;color:#FBF6EE}
body.theme-wine .qv::backdrop{background:rgba(20,4,10,.7)}
body.theme-wine .qv-x,body.theme-wine .qv-p,body.theme-wine .qv-n,body.theme-wine .bk-list .bki .rm{background:rgba(46,10,24,.9);color:#FBF6EE;border-color:rgba(201,162,74,.5)}
body.theme-wine .pd-dlg p{background:#4A1126;color:#FBF6EE}
body.theme-wine .pd-dlg::backdrop{background:rgba(20,4,10,.8)}
/* 料理頁底部條 */
body.theme-wine .pd-bar{background:#4A1126;border-top-color:rgba(201,162,74,.5);color:#FBF6EE}
body.theme-wine .pd-bar .num{color:#C9A24A}
body.theme-wine .pd-bar small{color:rgba(251,246,238,.72)}
body.theme-wine .pd-bar .btn{background:#C9A24A;color:#3B0D1F}
/* 榜單 */
body.theme-wine .rank-row:hover,body.theme-wine .rank-row:focus-visible,body.theme-wine .band-linen .rank-row:hover,body.theme-wine .band-linen .rank-row:focus-visible{background:rgba(201,162,74,.12)}
body.theme-wine .band-linen .rank-col{border-color:rgba(201,162,74,.35)}
body.theme-wine .band-linen .rank-col>h3{border-bottom-color:rgba(201,162,74,.45)}
/* 廚房頁 / 手記 */
body.theme-wine .kintro h1 small{color:#C9A24A}
body.theme-wine .cv-fr{border-color:#C9A24A;background:transparent}
body.theme-wine .d4-faq details{border-color:rgba(201,162,74,.45)}
body.theme-wine .ed:hover h3,body.theme-wine .gd-row:hover .gd-body h2{color:#C9A24A}
/* footer：深一階 */
body.theme-wine .ft{background:#2E0A18;border-top-color:rgba(201,162,74,.5);color:rgba(251,246,238,.72)}
body.theme-wine .ft a:hover{color:#C9A24A}
body.theme-wine .ft .bt,body.theme-wine .ft .ft-top,body.theme-wine .ft .ft-nav{border-color:rgba(201,162,74,.35)}
body.theme-wine .ft .ft-logo .lk-t b{color:#FBF6EE}body.theme-wine .ft .ft-logo .lk-t i{color:rgba(251,246,238,.78)}
body.theme-wine .ft .ft-nav a,body.theme-wine .ft .ft-top .ft-tag,body.theme-wine .ft .ft-tag b{color:#FBF6EE}
body.theme-wine .ft .ft-top .ft-hrs{color:#C9A24A}
body.theme-wine .ft .ft-res .btn{background:#C9A24A;color:#3B0D1F}
body.theme-wine .ft .ft-res .ob{border-color:#C9A24A;color:#FBF6EE}
body.theme-wine .ft .bt{border-top:1px solid #C9A24A}
body.theme-wine .ft .ft-fin{color:rgba(251,246,238,.55)}

/* ===== mix.css ===== */
/* ===== D8 混合版（?theme=mix）：只在 body.theme-mix 下、只對「品牌/情緒」容器重新定義變數並套酒窖版覆蓋；閱讀/挑選區塊維持淺色 =====
   酒紅容器：.hero-v2（含餐盤輪播）、.toc（目錄，夾在 hero 與封面之間）、.cover（封面故事）、.rank（本週榜單 #rank）、.pq（主廚語錄）、.ft（footer）、.tb（Tab Bar）、.pd-bar（料理頁底部條）、.gate（18+ 餐巾）、.mn（#menu 覆蓋層）、.cs（聯繫 sheet）
   .mh／.hd 在 mag.css 已是酒紅，mix 不另覆蓋。淺色：#tonight #kitchens #picks #journal #how #faq、廚房頁、料理頁資訊區、文章內文、菜籃頁、篩選抽屜。*/
body.theme-mix :is(.hero-v2,.toc,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs){--bg:#3B0D1F;--surface:#4A1126;--surface-2:#5E1630;--ink:#FBF6EE;--ink-2:rgba(251,246,238,.72);--line:rgba(201,162,74,.28);--primary:#C9A24A;--primary-deep:#B08A35;--primary-soft:rgba(201,162,74,.14);--gold:#C9A24A;--gold-soft:rgba(201,162,74,.12);--float:0 8px 24px rgba(0,0,0,.35);background:var(--bg);color:var(--ink)}
/* 區塊交接：酒紅區上下 1px 金線；相鄰兩個酒紅區只留一條 */
body.theme-mix :is(.cover,.rank,.pq){border-top:1px solid rgba(201,162,74,.45);border-bottom:1px solid rgba(201,162,74,.45)}
body.theme-mix :is(.cover,.rank,.pq) + :is(.cover,.rank,.pq){border-top:0}
body.theme-mix :is(.cover,.rank,.pq) + .sec{border-top:0}
body.theme-mix .hero-v2{border-top:0;border-bottom:0}
body.theme-mix .toc{border-top:0;border-bottom:1px solid rgba(201,162,74,.45);background:#4A1126}
body.theme-mix .pq{background:#4A1126}
/* 酒紅區上下 padding：手機 56／桌機 96 */
body.theme-mix :is(.cover,.rank,.pq){padding:56px 0}
@media (min-width:1024px){body.theme-mix :is(.cover,.rank,.pq){padding:96px 0}}
/* 文字 / 連結 */
body.theme-mix :is(.hero-v2,.toc,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .ap-wet{color:#C9A24A}
body.theme-mix :is(.hero-v2,.toc,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .lk{text-decoration-color:#C9A24A;color:#FBF6EE}
body.theme-mix :is(.hero-v2,.toc,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .lk:hover{text-decoration-color:#FBF6EE}
body.theme-mix :is(.cover,.rank,.pq) .sh h2::after{color:#C9A24A}
body.theme-mix :is(.cover,.rank,.pq) .sh .pno{color:rgba(251,246,238,.6)}
/* 按鈕：金底深酒紅字；底線鈕奶油字金線；dis 灰化仍可辨 */
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .btn{background:#C9A24A;color:#3B0D1F;border-color:#C9A24A}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .btn:hover{background:#D9B45E;color:#3B0D1F}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .btn.btn-primary{background:#C9A24A;color:#3B0D1F}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .btn.btn-primary:hover{background:#D9B45E}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) .btn.dis{background:rgba(251,246,238,.14);color:rgba(251,246,238,.55);border-color:transparent}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) :is(.ob,.btn-ghost,.tgb){background:transparent;border-color:#C9A24A;color:#FBF6EE}
body.theme-mix :is(.hero-v2,.cover,.rank,.pq,.ft,.tb,.pd-bar,.gate,.mn,.cs) :is(.ob,.btn-ghost):hover{border-color:#FBF6EE;color:#FBF6EE;background:rgba(201,162,74,.14)}
body.theme-mix .tb .bk-n{background:#C9A24A;color:#3B0D1F}
/* 目錄（桌機才顯示） */
body.theme-mix .toc-ls a{color:#FBF6EE}
body.theme-mix .toc-ls a i{color:rgba(251,246,238,.6)}
body.theme-mix .toc-ls a:hover,body.theme-mix .toc-ls a.on,body.theme-mix .toc-ls a[aria-current]{color:#C9A24A;border-bottom-color:#C9A24A}
body.theme-mix .toc-ls a.on i{color:#C9A24A}
/* Tab Bar */
body.theme-mix .tb{background:#5E1630;border-top-color:rgba(201,162,74,.45);-webkit-backdrop-filter:none;backdrop-filter:none}
body.theme-mix .tb a,body.theme-mix .tb button{color:rgba(251,246,238,.82)}
body.theme-mix .tb a[aria-current]{color:#C9A24A}
/* gate 餐巾遮罩 */
body.theme-mix .gate{background:#3B0D1F;color:#FBF6EE}
body.theme-mix .gate .in{border-color:#C9A24A}
body.theme-mix .gate .in::before{border-color:rgba(201,162,74,.35)}
body.theme-mix .gate p{color:rgba(251,246,238,.72)}
/* hero：底圖降到 .25，蓋深酒紅漸層；輪播框金線、內框深酒紅 */
body.theme-mix .hero-v2 :is(.hero-bg,.hero-v){opacity:.85;filter:saturate(1)}
body.theme-mix .hero-v2::before{background:linear-gradient(180deg,rgba(59,13,31,.6) 0 18%,rgba(59,13,31,.38) 55%,rgba(59,13,31,.18) 100%)}
@media (min-width:768px){body.theme-mix .hero-v2::before{background:linear-gradient(90deg,rgba(59,13,31,.72) 0 26%,rgba(59,13,31,.4) 50%,rgba(59,13,31,.08) 100%)}}
body.theme-mix .hero-sign{text-shadow:0 1px 4px rgba(0,0,0,.6)}body.theme-mix .hero-v2 .pick,body.theme-mix .hero-v2 .pick *{text-shadow:none}
body.theme-mix .hero-v2::after{opacity:.9}
body.theme-mix .hero h1 small{color:#C9A24A}
body.theme-mix .hero .sl{color:rgba(251,246,238,.78)}
body.theme-mix .hc-f{border-color:#C9A24A;background:transparent}
body.theme-mix .hc-s{background:#5E1630}
body.theme-mix .hc-cap{color:rgba(251,246,238,.72)}
body.theme-mix .hc-cap b{color:#FBF6EE}
body.theme-mix .plate .tag{background:#4A1126;border-color:rgba(201,162,74,.4);color:#FBF6EE}
/* 封面故事 */
body.theme-mix .cv-fr{border-color:#C9A24A;background:transparent}
body.theme-mix .cv-h small{color:rgba(251,246,238,.7)}
body.theme-mix .cv-meta{border-top-color:rgba(201,162,74,.28)}
/* 圖說 */
body.theme-mix :is(.hero-v2,.cover,.rank) .fig{border-top-color:#C9A24A;color:rgba(251,246,238,.72)}
body.theme-mix :is(.hero-v2,.cover,.rank) .fig .fig-n{color:#C9A24A}
/* 圖片：深底更順；blur-up 骨架 */
body.theme-mix :is(.hero-v2,.cover,.rank,.mn,.cs) .ph{background:#5E1630}
body.theme-mix :is(.hero-v2,.cover,.rank) .ph img{filter:saturate(.92) contrast(1.02)}
body.theme-mix :is(.hero-v2,.cover,.rank) .ph img:not(.ok){filter:blur(12px) saturate(.92)}
body.theme-mix.noanim :is(.hero-v2,.cover,.rank) .ph img{filter:saturate(.92) contrast(1.02)!important}
body.theme-mix :is(.hero-v2,.cover,.rank) .noimg{background:linear-gradient(135deg,#5E1630,rgba(201,162,74,.18))}
body.theme-mix .rank-img{background:#5E1630}
/* 章 / chip（hero 輪播、封面、榜單內若出現） */
body.theme-mix :is(.hero-v2,.cover,.rank) .chip{background:rgba(46,10,24,.55);color:#FBF6EE;border:1px solid rgba(201,162,74,.85);text-shadow:none}
body.theme-mix :is(.hero-v2,.cover,.rank) .st.on{color:#C9A24A;border-color:#C9A24A;outline-color:#C9A24A;background:rgba(59,13,31,.85);mix-blend-mode:normal;opacity:1}
body.theme-mix :is(.hero-v2,.cover,.rank) .st.on::before{background:#C9A24A}
body.theme-mix :is(.hero-v2,.cover,.rank) .st.off{color:rgba(251,246,238,.72);background:rgba(59,13,31,.85)}
body.theme-mix :is(.hero-v2,.cover,.rank) .pk{background:#C9A24A;color:#3B0D1F}
body.theme-mix :is(.hero-v2,.cover,.rank) .rb{background:#2E0A18;color:#C9A24A;border-top:1px solid #C9A24A;border-bottom:1px solid #C9A24A}
body.theme-mix :is(.hero-v2,.cover,.rank) .flag{border-color:rgba(251,246,238,.35)}
body.theme-mix :is(.hero-v2,.cover,.rank) :is(.pr b,.sc b){color:#FBF6EE}
/* 榜單欄 */
body.theme-mix .rank-col,body.theme-mix .band-linen .rank-col{background:transparent;border-color:rgba(201,162,74,.35);color:#FBF6EE}
body.theme-mix .rank-col>h3,body.theme-mix .band-linen .rank-col>h3{border-bottom-color:rgba(201,162,74,.45)}
body.theme-mix .rank-row,body.theme-mix .band-linen .rank-row{border-bottom-color:rgba(201,162,74,.28)}
body.theme-mix .rank-row:hover,body.theme-mix .rank-row:focus-visible,body.theme-mix .band-linen .rank-row:hover,body.theme-mix .band-linen .rank-row:focus-visible{background:rgba(201,162,74,.12)}
body.theme-mix .rank-nm{color:#FBF6EE}
body.theme-mix .rank-no,body.theme-mix .rank-no small,body.theme-mix .rank-sp,body.theme-mix .rank-pr{color:rgba(251,246,238,.72)}
body.theme-mix .rank-row.is-1 .rank-no,body.theme-mix .rank-row.is-1 .rank-no small{color:#C9A24A}
body.theme-mix .rank-pr b{color:#C9A24A}
body.theme-mix .rank-empty{color:rgba(251,246,238,.72)}
body.theme-mix .rank-empty b{color:#FBF6EE}
/* 主廚語錄 */
body.theme-mix .pq p{color:#FBF6EE}
body.theme-mix .pq footer{color:rgba(251,246,238,.6)}
/* #menu 覆蓋層 */
body.theme-mix .mn{background:#3B0D1F;color:#FBF6EE}
body.theme-mix .mn-h{border-bottom-color:rgba(201,162,74,.35)}
body.theme-mix .mn-l,body.theme-mix .mn-k{border-bottom-color:rgba(201,162,74,.45)}
body.theme-mix .mn-l{color:#FBF6EE}
body.theme-mix .mn-l:hover,body.theme-mix .mn-l:active,body.theme-mix .mn-k a:hover,body.theme-mix .mn-k a:active{color:#C9A24A}
body.theme-mix .mn-k a{color:rgba(251,246,238,.8)}
body.theme-mix .mn-f{color:rgba(251,246,238,.6)}
body.theme-mix .mn .logo span{color:#FBF6EE}
/* 聯繫 sheet */
body.theme-mix .cs-ov{background:rgba(20,4,10,.6)}
body.theme-mix .cs{background:#4A1126;border-color:rgba(201,162,74,.4);color:#FBF6EE}
body.theme-mix .cs-h{border-color:rgba(201,162,74,.28)}
body.theme-mix .cs p{color:rgba(251,246,238,.85)}
/* 料理頁底部條 */
body.theme-mix .pd-bar{background:#4A1126;border-top-color:rgba(201,162,74,.5);color:#FBF6EE}
body.theme-mix .pd-bar .num{color:#C9A24A}
body.theme-mix .pd-bar small{color:rgba(251,246,238,.72)}
body.theme-mix .pd-bar .btn{background:#C9A24A;color:#3B0D1F}
/* footer：深一階 */
body.theme-mix .ft{background:#2E0A18;border-top-color:rgba(201,162,74,.5);color:rgba(251,246,238,.72)}
body.theme-mix .ft a:hover{color:#C9A24A}
body.theme-mix .ft .bt,body.theme-mix .ft .ft-top,body.theme-mix .ft .ft-nav{border-color:rgba(201,162,74,.35)}
body.theme-mix .ft .ft-nav a,body.theme-mix .ft .ft-top .ft-tag,body.theme-mix .ft .ft-tag b{color:#FBF6EE}
body.theme-mix .ft .ft-logo .lk-t b{color:#FBF6EE}body.theme-mix .ft .ft-logo .lk-t i{color:rgba(251,246,238,.78)}
body.theme-mix .ft .ft-top .ft-hrs{color:#C9A24A}
body.theme-mix .ft .ft-res .btn{background:#C9A24A;color:#3B0D1F}
body.theme-mix .ft .ft-res .ob{border-color:#C9A24A;color:#FBF6EE}
body.theme-mix .ft .bt{border-top:1px solid #C9A24A}
body.theme-mix .ft .ft-fin{color:rgba(251,246,238,.55)}
