:root {
  --bg: #1a1a1a;
  --surface: #232323;
  --text: #fbe6cb;
  --muted: #bfae98;
  --bronze: #956e41;
  --line: #3b3a37;
  --green: #375542;
  --serif-latin: "DM Serif Display";
  --gutter: clamp(1rem, 4vw, 4.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
body { overflow-x: clip; }  /* 左右滑入動畫進場前不產生橫向捲軸 */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 8rem; }
body {
  margin: 0; background: var(--bg); color: var(--text); line-height: 1.8;
  font-family: var(--serif-latin), "Noto Serif TC", serif; font-size: 1rem; letter-spacing: .25px;
  -webkit-font-smoothing: antialiased;
}
html[lang="ja"] body { font-family: var(--serif-latin), "Noto Serif JP", serif; }
html[lang="ko"] body { font-family: var(--serif-latin), "Noto Serif KR", serif; }
h1, h2, .arches span, .split-text .lead { font-family: var(--serif-latin), "Noto Serif TC", serif; }
html[lang="ja"] h1, html[lang="ja"] h2, html[lang="ja"] .arches span, html[lang="ja"] .split-text .lead { font-family: var(--serif-latin), "Noto Serif JP", serif; }
html[lang="ko"] h1, html[lang="ko"] h2, html[lang="ko"] .arches span, html[lang="ko"] .split-text .lead { font-family: var(--serif-latin), "Noto Serif KR", serif; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--bronze); }
:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3 { margin: 0; font-weight: 600; line-height: 1.4; }
h1 { font-size: clamp(1.6rem, 3vw, 2rem); }
small { color: var(--muted); }
.nowrap { white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--surface); padding: .5rem 1rem; z-index: 3000; }
.skip:focus { left: 0; }

.wrap { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--gutter); }

/* 頁首 */
.site-head {
  position: sticky; top: 0; z-index: 1000; background: var(--surface);
  display: flex; align-items: center; justify-content: center; min-height: 122px; padding-inline: var(--gutter);
}
.site-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; gap: clamp(.5rem, 1.5vw, 1.5rem); }
.nav-list { display: flex; }
.nav-left { justify-content: flex-end; }
.nav-list a { display: block; padding: 11px clamp(1rem, 2.2vw, 40px); color: var(--bronze); font-weight: 500; letter-spacing: 2px; white-space: nowrap; }
.nav-list a:hover, .nav-list a[aria-current] { color: #fff; }
.brand { display: block; flex: none; }
.brand img { width: 84px; height: 90px; }
.brand--bar { display: none; }
.head-tools { position: absolute; right: clamp(.75rem, 2vw, 2rem); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; align-items: flex-end; gap: .5rem; }
.lang-switch { display: flex; }
.lang-switch a { padding: .1rem .6rem; color: var(--bronze); font-size: .913rem; font-weight: 500; letter-spacing: 1px; border-left: 1px solid var(--line); }
.lang-switch a:first-child { border-left: 0; }
.lang-switch a[aria-current], .lang-switch a:hover { color: #fff; }
.book-btn, .btn {
  display: inline-block; border: 1px solid var(--bronze); color: var(--text); padding: .45rem 1.1rem; letter-spacing: .06em;
  white-space: nowrap; transition: background .15s, color .15s;
}
.book-btn:hover, .btn:hover { background: var(--bronze); color: #1a1a1a; }
.btn { padding: .7rem 1.8rem; margin-top: 1rem; white-space: normal; text-align: center; }
.nav-toggle { display: none; }

@media (max-width: 1400px) {
  .site-head { min-height: 64px; justify-content: center; }
  .site-nav {
    display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); width: auto; margin: 0;
    flex-direction: column; padding: 1rem 0 1.5rem; border-top: 1px solid var(--line);
  }
  .site-nav.is-open { display: flex; }
  .site-nav .brand { display: none; }
  .nav-list { flex-direction: column; align-items: center; }
  .brand--bar { display: block; }
  .brand--bar img { width: 42px; height: 45px; }
  .nav-toggle {
    display: flex; flex-direction: column; justify-content: center; gap: 5px; position: absolute; left: var(--gutter); top: 50%;
    transform: translateY(-50%); width: 44px; height: 44px; padding: 10px; background: none; border: 0; cursor: pointer;
  }
  .nav-toggle span { display: block; height: 1px; background: var(--text); }
  .head-tools { flex-direction: row; align-items: center; gap: .5rem; }
}
@media (max-width: 760px) {
  .head-tools { position: static; transform: none; margin-left: auto; }
  .site-head { justify-content: flex-start; padding-left: 60px; padding-right: .75rem; gap: .5rem; }
  .brand--bar { margin-right: auto; }
  .site-nav { top: calc(100% + 2.35rem); }
  .lang-switch { position: absolute; top: 100%; left: 0; right: 0; justify-content: center; background: var(--surface); padding: .35rem 0; border-top: 1px solid var(--line); }
  .book-btn { font-size: .8125rem; padding: .35rem .7rem; }
  body { padding-top: 0; }
  main { padding-top: 2.4rem; }
  html { scroll-padding-top: 7rem; }
}

/* 開場頁（中文首頁 /）：滿版影片＋Logo＋四語。影片放大裁切的數值照舊站，把 YouTube 標題與 logo 藏出畫面 */
.splash { display: none; }
html.splash-open { overflow: hidden; }
html.splash-open .cookie { display: none; }
html.splash-open .splash { display: block; position: fixed; inset: 0; z-index: 2000; background: #000; overflow: hidden; transition: opacity .7s ease; }
.splash.is-leaving { opacity: 0; pointer-events: none; }
.splash-video { position: absolute; inset: 0; overflow: hidden; }
.splash-video iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 56.25vw; min-width: 100%; min-height: 100vh; border: 0; transform: translate(-50%, -50%) scale(1.25) translateY(-4%) translateX(2%); pointer-events: none; }
@media (max-aspect-ratio: 16/9) { .splash-video iframe { width: 177.78vh; height: 100vh; } }
.splash-poster { position: absolute; inset: 0; background: #000 url(/images/splash-poster.webp) center / cover; transition: opacity .8s ease; }
.splash.is-playing .splash-poster { opacity: 0; }
.splash::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.5), rgba(0,0,0,.15) 55%, rgba(0,0,0,0)); pointer-events: none; }
.splash-lang a { text-shadow: 0 1px 6px rgba(0,0,0,.6); }
.splash-brand { position: absolute; z-index: 1; top: 15%; left: 16%; height: 70%; max-height: 450px; display: flex; gap: 1.5rem; }
.splash-brand img { height: 88%; width: auto; }
.splash-lang { display: flex; flex-direction: column; justify-content: flex-end; gap: .5rem; font-size: 1rem; }
.splash-lang a { color: #e7d8bc; text-decoration: none; }
.splash-lang a:hover, .splash-lang a:focus-visible { color: #fff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (max-width: 640px) { .splash-brand { left: 10%; height: 55%; } }

/* 首頁拱門 */
.arches { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.75rem, 2.5vw, 2.3rem); padding: clamp(1.5rem, 6vw, 5.5rem) clamp(1rem, 5vw, 4.5rem); max-width: 1500px; margin-inline: auto; }
.arches a { position: relative; display: block; border-radius: 999px 999px 0 0; overflow: hidden; aspect-ratio: 296 / 416; background: #000; }
.arches img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.arches a:hover img { transform: scale(1.04); }
.arches a::after { content: ""; position: absolute; inset: 55% 0 0; background: linear-gradient(transparent, rgba(0, 0, 0, .85)); }
.arches span { position: absolute; z-index: 1; left: 0; right: 0; bottom: 8%; text-align: center; color: #d6b184; font-size: clamp(1rem, 1.6vw, 1.25rem); font-weight: 600; letter-spacing: .08em; }
@media (max-width: 760px) { .arches { grid-template-columns: repeat(2, 1fr); } }

.intro { max-width: 900px; padding-block: 1rem 3rem; text-align: center; }
.intro h1 { font-size: clamp(1.25rem, 2.4vw, 1.75rem); margin-bottom: 1.5rem; }
.intro p { margin: 0 0 1rem; }
.home-info { display: grid; grid-template-columns: 2fr 1fr; gap: 3rem; padding-bottom: 5rem; max-width: 1100px; align-items: center; }
.facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.facts li { border-top: 1px solid var(--bronze); padding-top: 1rem; }
.facts span { display: block; color: var(--muted); font-size: .875rem; }
.facts strong { font-weight: 600; font-size: 1.125rem; }
.home-hours h2 { font-size: 1.125rem; margin-bottom: .5rem; }
.home-hours li span, .foot-hours li span { color: var(--muted); display: inline-block; min-width: 4.5em; }
@media (max-width: 760px) { .home-info, .facts { grid-template-columns: 1fr; } }

/* 內頁 */
.page-head { text-align: center; }
/* 舊站 h1-85TD：白色粗體置中，標題下可接錨點連結列 */
.page-head h1 { display: flex; flex-direction: column; align-items: center; gap: .375rem; margin: 2.5rem auto; color: #fff; font-weight: 700; font-size: 1.5rem; }
.page-head h1 b { font-weight: 700; }
.h1-links { display: flex; font-size: 1.125rem; }
.h1-links a { display: flex; align-items: center; color: var(--bronze); }
.h1-links a:not(:last-child)::after { content: "|"; padding: 0 20px; font-size: 1rem; font-weight: 600; color: var(--bronze); }
.h1-links a:hover { color: #fff; }
@media (min-width: 992px) { .page-head h1 { gap: .75rem; margin: 3.5rem auto; font-size: 2rem; } .h1-links { font-size: 1.25rem; } }
@media (min-width: 1280px) { .page-head h1 { margin: 4rem auto; } }
.page-intro { max-width: 820px; text-align: center; margin-bottom: 2rem; }
.page-intro.bar-intro { max-width: 1000px; }
.bar-menu-link { text-align: center; margin-bottom: 3rem; }
.center { text-align: center; }
.page-head .lead { max-width: 760px; margin: 1rem auto 0; }
.lead { font-size: 1.125rem; color: var(--text); margin: .5rem 0; }
.note { color: var(--muted); font-size: .875rem; }
.award { color: var(--bronze); margin: 0 0 1rem; }
/* 舊站 h2-85TD */
.sec-title { border-bottom: 2px solid var(--green); padding-bottom: .5rem; margin: .3rem 0 2rem; font-size: 1.25rem; font-weight: 700; color: var(--text); min-height: 1px; }
.text-link { color: var(--bronze); border-bottom: 1px solid currentColor; }
.wide-img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }

/* 品牌故事／主廚介紹（舊站 a2-po1／a2-po2） */
.po { position: relative; display: flex; flex-direction: column-reverse; margin-bottom: 3rem; background: #000; }
.po--right { flex-direction: column; }
.po h3 { margin: 0 0 1rem; font-size: 1.125rem; line-height: 1.8; color: var(--text); }
.po p { margin: 0 0 1rem; font-size: .9375rem; }
.po-txt { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 1.5rem; }
.po figure { position: relative; width: 100%; margin: 0; }
.po figure img { width: 100%; height: 100%; object-fit: cover; }
.po figure::after { content: ""; position: absolute; inset: 0; z-index: 1; background-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 20%); }
@media (min-width: 992px) {
  .po { flex-direction: row; margin-bottom: 6rem; }
  .po--left { justify-content: flex-end; }
  .po::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; }
  .po--left::after { background-image: linear-gradient(to right, #000 30%, rgba(0, 0, 0, 0) 70%); }
  .po--right::after { background-image: linear-gradient(to left, #000 30%, rgba(0, 0, 0, 0) 70%); }
  .po-txt { position: absolute; top: 0; height: 100%; width: 55%; padding: 50px 60px; z-index: 100; }
  .po--left .po-txt { left: 0; max-width: 570px; }
  .po--right .po-txt { right: 0; max-width: 670px; }
  .po figure { width: 70%; }
  .po figure::after { display: none; }
}

.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 4rem); align-items: center; padding-block: 2rem; }
.split img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.split--rev .split-text { order: 2; }
.split-text h2 { color: var(--bronze); font-size: 1rem; letter-spacing: .1em; }
.split-text p:not(.lead):not(.award) { margin: 0 0 1rem; }
.split-text .lead { font-size: 1.5rem; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } .split--rev .split-text { order: 0; } }

.photo-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.photo-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
@media (max-width: 760px) { .photo-grid { grid-template-columns: 1fr; } }
.stat-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 3rem; padding-block: 2rem; }
.stat-row li { display: flex; align-items: center; gap: .75rem; }
/* ===== 空間環境頁：照舊官網（style_3142）的版面與特效 ===== */
/* 大廳輪播：16:7、圓點、圖片 hover 放大 1.03 */
.slides { display: flex; overflow-x: auto; scrollbar-width: none; margin: 0; padding: 0; list-style: none; }
.slides::-webkit-scrollbar { display: none; }
.slides li { flex: 0 0 100%; }
.lobby-pic { margin: 0; aspect-ratio: 16 / 7; overflow: hidden; transition: transform .5s ease-in-out; }
.lobby-pic:hover { transform: scale(1.03); }
.lobby-pic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dots { display: flex; justify-content: center; gap: 6px; margin: 1rem; }
.dots button { width: 11px; height: 11px; border-radius: 50%; padding: 0; background: #999; border: 1px solid #999; opacity: .8; cursor: pointer; }
.dots button[aria-current="true"] { background: #956e41; border-color: #956e41; opacity: 1; }
@media (max-width: 760px) { .lobby-pic { aspect-ratio: 5 / 3; } }

/* 拱形卡片輪播（舊站 Swiper，freeMode）。每種輪播的張數／間距／左側留白照舊站參數 */
.carousel { position: relative; margin-inline: auto; }
.track { --n: 1.4; --gap: 12px; --pad: 20px; display: flex; gap: var(--gap); overflow-x: auto; scrollbar-width: none; margin: 0; padding: 0 0 0 var(--pad); list-style: none; }
.track::-webkit-scrollbar { display: none; }
.track > li { flex: 0 0 calc((100% - var(--pad) - (var(--n) - 1) * var(--gap)) / var(--n)); }
/* 包廂（a42） */
.carousel--rooms { max-width: 1045px; }
@media (min-width: 640px) { .track--rooms { --n: 2.2; --gap: 15px; --pad: 30px; } }
@media (min-width: 768px) { .track--rooms { --n: 2.4; --gap: 20px; --pad: 60px; } }
@media (min-width: 996px) { .track--rooms { --n: 3; --gap: 35px; --pad: 0px; } }
/* 菜單（a3）：最寬 1000px，張數不足一排時置中 */
.carousel--menu { max-width: 1000px; margin-block: 3rem; }
.track--menu { --pad: 30px; justify-content: safe center; }
@media (min-width: 640px) { .track--menu { --n: 2.2; --gap: 15px; --pad: 30px; } }
@media (min-width: 768px) { .track--menu { --n: 2.4; --gap: 20px; --pad: 60px; } }
@media (min-width: 996px) { .track--menu { --n: 3; --gap: 35px; --pad: 0px; } }
/* 最新消息（a5） */
.carousel--news { max-width: 1200px; margin-block: 3rem 5rem; }
.track--news { --gap: 6px; --pad: 30px; }
@media (min-width: 640px) { .track--news { --n: 2.2; --gap: 15px; --pad: 30px; } }
@media (min-width: 768px) { .track--news { --n: 2.4; --gap: 10px; --pad: 60px; } }
@media (min-width: 996px) { .track--news { --n: 3; --gap: 10px; --pad: 0px; } }
@media (min-width: 1280px) { .track--news { --gap: 15px; } }
/* 首頁（a1） */
.home-arches { margin: 3rem auto 5rem; }
.carousel--home { width: 100%; }
.track--home { --pad: 40px; }
@media (min-width: 640px) { .track--home { --n: 2.5; --gap: 15px; --pad: 40px; } }
@media (min-width: 768px) { .track--home { --n: 2.8; --gap: 20px; --pad: 60px; } }
@media (min-width: 996px) { .track--home { --n: 3.6; --gap: 20px; --pad: 60px; } }
@media (min-width: 1336px) { .track--home { --n: 4; --gap: 35px; --pad: 0px; } }
@media (min-width: 1366px) { .home-arches { width: 90%; max-width: 1400px; margin: 4rem auto 6rem; } }

/* 拱形卡片（item-rounded）：hover 出綠框、內縮，標題上移變亮 */
.arch-wrap { display: flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 250px 250px 0 0; }
.arch-wrap * { transition: transform .5s ease-in-out; }
.arch-wrap:hover { border-color: #375542; padding: .5rem; }
.arch-card { position: relative; width: 100%; margin: 0; border-radius: 250px 250px 0 0; aspect-ratio: 830 / 1169; overflow: hidden; }
.arch-card img { width: 100%; height: 100%; object-fit: cover; }
.arch-card::before { content: ""; position: absolute; left: 0; bottom: 0; z-index: 1; width: 100%; height: 70%; background-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 80%); }
.arch-card h3 { position: absolute; z-index: 2; bottom: 1rem; left: 0; width: 100%; margin: 0; padding: .5rem; display: flex; flex-direction: column; align-items: center; color: var(--bronze); letter-spacing: 1px; font-size: 1.25rem; font-weight: 700; transform: translateY(0); }
.arch-card h3 b { font-size: .875rem; color: #eee; font-family: "DM Serif Display", "Noto Sans TC", serif; font-weight: 400; }
.arch-wrap:hover .arch-card h3 { transform: translateY(-20px); color: #c69e5f; }

/* 最新消息卡片（item-news）：hover 金框、圖放大 1.1、標題底變咖啡色 */
.news-wrap { display: flex; padding: .5rem; border: 1px solid transparent; border-radius: 250px 250px 0 0; overflow: hidden; }
.news-wrap * { transition: transform .5s ease-in-out; }
.news-wrap:hover { border-color: var(--bronze); color: inherit; }
.news-card { position: relative; width: 100%; margin: 0; border-radius: 250px 250px 0 0; overflow: hidden; }
.news-card img { width: 100%; height: 100%; aspect-ratio: 830 / 1169; object-fit: cover; }
.news-wrap:hover .news-card img { transform: scale(1.1); transition: transform .3s ease-in-out; }
.news-card h2 { position: absolute; z-index: 2; bottom: 0; left: 0; width: 100%; margin: 0; padding: .75rem 1.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .5rem; background: #000; color: var(--bronze); font-size: .913rem; font-weight: 700; line-height: 1.5; letter-spacing: 1px; text-align: left; }
.news-card h2 time { font-size: .875rem; color: #eee; font-weight: 400; }
.news-card h2 span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; min-height: 4.5em; }
.news-wrap:hover .news-card h2 { background: #684a28; color: #dbdbdb; }
.news-card .credit { font-size: .75rem; color: #888; font-weight: 400; letter-spacing: .5px; }
@media (min-width: 1440px) { .news-card h2 { font-size: 1rem; padding: 1rem 2rem; } }

.car-btn { position: absolute; top: 50%; z-index: 10; transform: translateY(-50%); display: flex; background: none; border: 0; padding: .25rem; color: #ddd; cursor: pointer; transition: opacity .3s; }
.car-btn:disabled { opacity: .3; cursor: default; }  /* 舊官網 disabled 為 0.3（!important 蓋過 0） */
.car-prev { left: -4.5rem; }
.car-next { right: -4.5rem; }
@media (max-width: 1200px) { .car-prev { left: -.5rem; } .car-next { right: -.5rem; } }

/* 進場：輪播每 3 張一組、每組間隔 400ms 由右滑入（JS 加 .show） */
.js .slides li, .js .track > li { opacity: 0; transform: translateX(40px); backface-visibility: hidden; transition: opacity .8s ease, transform .8s ease; }
.js .slides li.show, .js .track > li.show { opacity: 1; transform: translateX(0); }

/* 席數列圖示 */
.stat-row img { width: 45px; height: 45px; }

/* 品牌活動｜包場：背景圖＋黑色半透明遮罩 */
.events-band { position: relative; width: 92%; max-width: 1296px; margin: 3rem auto; padding: 2rem; aspect-ratio: 13 / 7; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; text-align: center; background: url(/images/events-bg.webp) 50% 63% / cover no-repeat; }
.events-band::after { content: ""; position: absolute; inset: 0; z-index: 1; background: #00000087; }
.events-band p, .events-band a { position: relative; z-index: 2; }
.events-band p { margin: 0; font-size: 1.125rem; color: #fff; }
.events-band a { display: flex; align-items: center; justify-content: center; width: 95%; max-width: 200px; padding: 8px; background: #375542; color: #fff; font-size: 1rem; text-decoration: none; }
.events-band a:hover { background: #956e41; }
@media (min-width: 760px) { .events-band { gap: 2rem; aspect-ratio: 75 / 22; margin: 4rem auto; } .events-band p { font-size: 1.5rem; } .events-band a { font-size: 1.125rem; padding: 10px; } }

/* AOS 動畫（duration 1000、ease；fade-up/down 位移 100px、zoom-in 0.6） */
.js [data-aos] { transition: opacity 1s ease, transform 1s ease; }
.js [data-aos^="fade"], .js [data-aos^="zoom"] { opacity: 0; }
.js [data-aos="fade-up"] { transform: translate3d(0, 100px, 0); }
.js [data-aos="fade-down"] { transform: translate3d(0, -100px, 0); }
.js [data-aos="zoom-in"] { transform: scale(.6); }
.js [data-aos="aos-left"], .js [data-aos="aos-right"] { opacity: 0; }
@media (min-width: 768px) { .js [data-aos="aos-left"] { transform: translateX(-100px); } .js [data-aos="aos-right"] { transform: translateX(100px); } }
.js [data-aos].aos-animate { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js [data-aos], .js .slides li, .js .track > li { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Lenis 平滑捲動 */
html.lenis { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
.cta { text-align: center; padding-block: 4rem 5rem; }
.cta p { margin: .5rem 0; color: var(--muted); }

/* 包廂內頁（舊站 a4-1） */
.room-cap { font-size: .875rem; text-align: right; font-weight: 400; margin: 1rem 0; }
.room-info { max-width: 640px; margin: 2.5rem auto 1rem; }
.room-info div { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-block: .6rem; border-bottom: 1px solid var(--line); }
.room-info dt { color: var(--muted); }
.room-info dd { margin: 0; text-align: right; }
.room-page { padding-bottom: 4rem; }
.slides a { display: block; }
/* 點圖放大（舊站 fancybox） */
.lightbox { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; background: rgba(15, 15, 15, .92); opacity: 0; transition: opacity .3s; }
.lightbox.is-open { opacity: 1; }
.lightbox img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; transform: scale(.94); transition: transform .3s; }
.lightbox.is-open img { transform: none; }
.lightbox button { position: absolute; background: none; border: 0; color: #ddd; cursor: pointer; padding: .75rem; }
.lb-close { top: .5rem; right: .75rem; font-size: 2rem; line-height: 1; }
.lb-prev { left: .5rem; top: 50%; transform: translateY(-50%); }
.lb-next { right: .5rem; top: 50%; transform: translateY(-50%); }

.rooms { padding-bottom: 4rem; }
.room { display: grid; grid-template-columns: 3fr 2fr; gap: clamp(1.5rem, 3vw, 3rem); padding-block: 2.5rem; border-top: 1px solid var(--line); align-items: start; }
.room > img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.room dl { margin: 1rem 0; }
.room dl div { display: flex; justify-content: space-between; gap: 1rem; padding-block: .5rem; border-bottom: 1px solid var(--line); }
.room dl div { flex-wrap: wrap; }
.room dt { color: var(--muted); }
.room dd { margin: 0; text-align: right; }
.room-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-top: 1rem; }
.room-gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; }
@media (max-width: 900px) { .room { grid-template-columns: 1fr; } }

/* 菜單 */
.menu-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 480px); justify-content: center; gap: 1.5rem; }
.menu-cards a { display: block; text-align: center; }
.menu-cards img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.menu-cards span { display: block; padding: .75rem; color: #d6b184; }
.wrap > .note { text-align: center; }
@media (max-width: 760px) { .menu-cards { grid-auto-flow: row; grid-auto-columns: auto; } }
.menu-jump { position: sticky; top: 122px; z-index: 500; background: var(--bg); padding-block: .6rem; overflow-x: auto; margin-top: 2rem; border-block: 1px solid var(--line); }
.menu-jump ul { display: flex; gap: .25rem; width: max-content; margin-inline: auto; }
.menu-jump a { display: block; padding: .25rem .7rem; color: var(--bronze); font-size: .875rem; white-space: nowrap; }
@media (max-width: 1400px) { .menu-jump { top: 64px; } }
@media (max-width: 760px) { .menu-jump { top: 100px; } }
.menu-body { max-width: 960px; padding-bottom: 4rem; }
.menu-cat { padding-top: 2.5rem; }
.menu-cat h2 { color: #d6b184; font-size: 1.375rem; border-bottom: 1px solid var(--green); padding-bottom: .6rem; margin-bottom: .5rem; }
.dish { padding-block: .85rem; border-bottom: 1px solid #2c2b29; }
.dish-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1.5rem; }
.dish h3 { font-size: 1rem; font-weight: 600; }
.price { flex: none; text-align: right; font-variant-numeric: tabular-nums; max-width: 55%; }
.dish-desc { margin: .25rem 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.6; }
.badge { font-style: normal; font-size: .6875rem; color: var(--bronze); border: 1px solid currentColor; padding: 0 .35rem; margin-left: .5rem; vertical-align: middle; white-space: nowrap; font-weight: 400; }
@media (max-width: 480px) { .dish-row { flex-direction: column; gap: 0; } .price { text-align: left; max-width: none; } }
.courses { margin-top: .5rem; padding-left: 1rem; border-left: 1px solid var(--line); font-size: .9375rem; }
.courses li { padding-block: .15rem; }
.courses small { display: block; font-size: .8125rem; }
.pairing { margin: .5rem 0 0; color: var(--muted); font-size: .875rem; }
.dish .text-link { font-size: .875rem; }
.bar-rules { max-width: 960px; padding-block: 2rem; }
.bar-rules h2 { margin-bottom: 1rem; font-size: 1.125rem; }
.bar-rules li { position: relative; padding-left: 1.2rem; margin-bottom: .4rem; }
.bar-rules li::before { content: ""; position: absolute; left: 0; top: .8em; width: .5rem; height: 1px; background: var(--bronze); }

/* 最新消息 */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 1.5rem; padding-bottom: 5rem; }
.news-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.news-meta { display: flex; justify-content: space-between; align-items: center; margin-top: .75rem; font-size: .8125rem; color: var(--muted); }
.news-meta em { font-style: normal; color: var(--bronze); }
.news-grid h2 { margin-top: .35rem; font-size: 1rem; font-weight: 400; line-height: 1.6; }
@media (max-width: 900px) { .news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .news-grid { grid-template-columns: 1fr; } }
.article { max-width: 820px; padding-block: 2.5rem 5rem; }
.article time { display: block; margin-top: 1.5rem; color: var(--muted); font-size: .875rem; }
.article h1 { margin-bottom: 1rem; }
.article img { width: 100%; margin-block: 1rem; }
.article-body p { margin: 0 0 .5rem; overflow-wrap: anywhere; }

/* FAQ */
.faq { max-width: 900px; margin: 4rem auto 6rem; }
.faq details { padding: 20px 0; border-bottom: 1px solid var(--green); }
.faq summary { display: flex; align-items: center; gap: 16px; cursor: pointer; list-style: none; color: #999; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "＋"; flex: none; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #999; border-radius: 50%; font-size: 1rem; }
.faq details[open] summary::before { content: "－"; }
.faq summary h2 { font-size: 1.125rem; font-weight: 600; line-height: 1.8; color: inherit; }
.faq summary:hover { color: var(--text); }
.faq details p { margin: .75rem 0 0 48px; color: #999; font-size: 1rem; }
.faq details[open] p { animation: faq-open .4s ease; }
@keyframes faq-open { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* 聯繫 */
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; padding-bottom: 5rem; max-width: 1200px; }

.contact-grid p { margin: 0 0 .75rem; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }

/* 頁尾 */
/* 頁尾（舊站 footer）：Logo 置中、灰字、社群圓形圖示 */
.site-foot { background: var(--surface); padding: 2rem var(--gutter); color: #999; font-weight: 500; }
.site-foot a { color: #999; }
.site-foot a:hover { color: var(--text); }
.foot-logo { display: block; width: 120px; margin: .75rem auto 2rem; }
.foot-logo img { width: 120px; height: auto; }
.foot-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr) auto auto; gap: 2rem 3rem; max-width: 1200px; margin-inline: auto; align-items: start; }
.foot-basic b, .foot-hours-wrap b { font-weight: 700; }
.foot-basic small { color: #999; }
.foot-social { display: flex; margin: 1.25rem 0 0; }
.foot-social img { width: 42px; height: 42px; }
.foot-hours li span { color: #999; display: inline-block; min-width: 4.5em; }
.copyright { text-align: center; color: #777; font-size: .75rem; margin: 2.5rem 0 0; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } .foot-basic, .foot-hours-wrap { grid-column: 1 / -1; } }

.cookie { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); width: min(92vw, 760px); z-index: 2000; display: flex; align-items: center; gap: 1rem; background: #fff; color: #333; padding: 1rem 1.5rem; border-radius: 12px; font-size: .875rem; }
.cookie[hidden] { display: none; }
.cookie p { margin: 0; flex: 1; }
.cookie button { background: #555; color: #fff; border: 0; padding: .4rem .8rem; border-radius: 4px; cursor: pointer; font: inherit; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
