@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+TC:wght@500;600&family=Noto+Sans+TC:wght@300;400;500&display=swap');

/* Codex subpage polish — 2026-09-02
   Scope: customer-facing presentation only. Do not put business copy, prices, SEO or behavior here. */
:root{
  --sub-paper:#FFFDF8;
  --sub-paper-warm:#FFF9EF;
  --sub-brown:#3B2F1E;
  --sub-gold:#C9A24B;
  --sub-line:rgba(58,46,34,.12);
  --sub-gold-line:rgba(201,162,75,.28);
  --sub-shadow:0 22px 66px rgba(58,46,34,.085);
}

html{scroll-padding-top:88px}
body{
  text-rendering:optimizeLegibility;
  font-kerning:normal;
  -webkit-font-smoothing:antialiased;
}

/* Shared article / service subpages */
body:not(.lux){
  background:
    radial-gradient(circle at 10% 0%,rgba(201,162,75,.10),transparent 26rem),
    linear-gradient(180deg,#FBF8F1 0%,#F4EEE2 100%);
  color:var(--sub-brown);
}
body:not(.lux) main section:first-of-type{
  padding-top:clamp(46px,6vw,72px);
}
body:not(.lux) .tool-wrap{
  max-width:900px;
}
body:not(.lux) .page-h1{
  font-size:clamp(2rem,4vw,2.8rem);
  line-height:1.34;
  letter-spacing:.045em;
  color:var(--sub-brown);
  text-wrap:balance;
}
body:not(.lux) .crumb{
  color:#846F4B;
  font-size:.9rem;
}
body:not(.lux) .ans,
body:not(.lux) .cta,
body:not(.lux) .fact,
body:not(.lux) .step,
body:not(.lux) .gal,
body:not(.lux) .divert,
body:not(.lux) table.pt{
  background:rgba(255,253,248,.9);
  border-color:var(--sub-line);
  box-shadow:var(--sub-shadow);
  backdrop-filter:blur(10px);
}
body:not(.lux) .ans,
body:not(.lux) .gal{
  border-left-width:4px;
  border-left-color:var(--sub-gold);
}
body:not(.lux) .ans p,
body:not(.lux) .qa p,
body:not(.lux) ul.pl li{
  color:#4E4235;
  font-size:clamp(.98rem,1.08vw,1.04rem);
  line-height:1.95;
}
body:not(.lux) h2.blk{
  position:relative;
  border-bottom:0;
  padding-bottom:14px;
  margin-top:clamp(42px,5vw,56px);
  font-size:clamp(1.35rem,2.4vw,1.72rem);
  color:var(--sub-brown);
}
body:not(.lux) h2.blk::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:54px;
  height:2px;
  background:linear-gradient(90deg,var(--sub-gold),transparent);
}
body:not(.lux) table.pt{
  overflow:hidden;
  border-radius:12px;
  border-collapse:separate;
  border-spacing:0;
}
body:not(.lux) table.pt th{
  background:linear-gradient(135deg,#F7F0E3,#EEE1CA);
  color:var(--sub-brown);
}
body:not(.lux) table.pt th,
body:not(.lux) table.pt td{
  border-color:rgba(58,46,34,.10);
}
body:not(.lux) table.pt tr:nth-child(even) td{
  background:rgba(255,249,239,.52);
}
body:not(.lux) .tag-ok,
body:not(.lux) .tag-no{
  font-weight:500;
  letter-spacing:.04em;
}
body:not(.lux) .gal a.btn2,
body:not(.lux) a.btn,
body:not(.lux) .cta .btn,
body:not(.lux) button{
  min-height:44px;
  border-radius:999px;
}
body:not(.lux) .gal a.btn2:hover,
body:not(.lux) a.btn:hover{
  box-shadow:0 14px 34px rgba(169,128,63,.18);
}
body:not(.lux) .locmap{
  border:1px solid var(--sub-gold-line);
  box-shadow:var(--sub-shadow);
}

/* Venue and English body.lux pages */
body.lux{
  font-weight:400;
  background:
    radial-gradient(circle at 14% 0%,rgba(201,162,75,.09),transparent 28rem),
    var(--ivory,#FAF8F3);
}
body.lux header.top{
  box-shadow:0 14px 38px rgba(26,23,18,.18);
}
body.lux .hero2{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid rgba(201,162,75,.28);
}
body.lux .hero2::after{
  content:"";
  position:absolute;
  inset:auto 8% -80px auto;
  width:min(42vw,520px);
  height:min(42vw,520px);
  background:radial-gradient(circle,rgba(201,162,75,.18),transparent 70%);
  pointer-events:none;
}
body.lux .hero2 .wrap{position:relative;z-index:1}
body.lux .hero2 h1{
  text-shadow:0 18px 52px rgba(0,0,0,.32);
  text-wrap:balance;
}
body.lux .answer,
body.lux .svc a.card,
body.lux .venue-split .v,
body.lux .venue figure,
body.lux .svc-split figure,
body.lux table.tb{
  box-shadow:var(--sub-shadow);
}
body.lux .svc a.card,
body.lux .venue-split .v,
body.lux table.tb{
  background:rgba(255,253,248,.92);
  backdrop-filter:blur(10px);
}
body.lux .svc a.card:hover,
body.lux .venue-split .v:hover{
  box-shadow:0 28px 74px rgba(58,46,34,.13);
}
body.lux p,
body.lux li,
body.lux table.tb td{
  line-height:1.88;
}
body.lux .btn,
body.lux .topnav .book{
  min-height:44px;
}

/* Standalone gallery pages */
.head{
  background:
    radial-gradient(circle at 18% 8%,rgba(201,162,75,.12),transparent 28rem),
    linear-gradient(180deg,rgba(255,255,255,.03),transparent);
}
.head h1{
  text-shadow:0 18px 52px rgba(0,0,0,.22);
  text-wrap:balance;
}
.gal figure{
  filter:drop-shadow(0 24px 58px rgba(0,0,0,.22));
}
.gal .imgbox{
  box-shadow:0 24px 72px rgba(0,0,0,.22);
}
.gal figcaption{
  padding:0 4px;
}
.info{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.cta-band a,
.close{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* 404 */
.box{
  position:relative;
  padding:clamp(34px,5vw,52px);
  border:1px solid rgba(201,162,75,.26);
  background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  box-shadow:0 28px 90px rgba(0,0,0,.30);
  backdrop-filter:blur(12px);
}
.box::before{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(201,162,75,.12);
  pointer-events:none;
}
.code{
  text-shadow:0 18px 42px rgba(0,0,0,.28);
}

/* Language menu fallback for standalone pages */
.langsw{position:relative;display:inline-flex;align-items:center;flex-shrink:0}
.lang-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(201,162,75,.26);border-radius:999px;background:rgba(255,255,255,.05);color:#C8A24A;cursor:pointer;opacity:.94;padding:0}
.lang-btn:hover{opacity:1;background:rgba(201,162,75,.12)}
.lang-btn svg{width:21px;height:21px}
.lang-menu{position:absolute;right:0;top:calc(100% + 10px);min-width:132px;background:#1A1712;border:1px solid rgba(183,154,106,.3);border-radius:10px;padding:6px;flex-direction:column;gap:2px;display:none;box-shadow:0 12px 30px rgba(0,0,0,.32);z-index:140}
.lang-menu.open{display:flex}
.lang-menu a{cursor:pointer;font-size:.82rem;letter-spacing:.04em;padding:9px 14px;border-radius:7px;color:#D8D2C4;text-decoration:none;white-space:nowrap}
.lang-menu a:hover{background:rgba(255,255,255,.08);color:#fff}
.lang-menu a.cur{color:#D4AE72;background:rgba(169,128,63,.18)}

@media(max-width:820px){
  body:not(.lux) .tool-wrap{max-width:100%}
  body:not(.lux) .ans,
  body:not(.lux) .cta,
  body:not(.lux) .fact,
  body:not(.lux) .step,
  body:not(.lux) .gal,
  body:not(.lux) .divert{padding:20px}
  body.lux main section{padding-top:58px;padding-bottom:58px}
}
@media(max-width:560px){
  html{scroll-padding-top:72px}
  body:not(.lux) .page-h1{font-size:clamp(1.72rem,8.5vw,2.2rem)}
  body:not(.lux) h2.blk{font-size:1.32rem}
  body:not(.lux) table.pt{display:block;overflow-x:auto}
  body:not(.lux) .gal{align-items:flex-start}
  body:not(.lux) .gal a.btn2{width:100%;justify-content:center;text-align:center}
  .head{padding-top:64px;padding-bottom:42px}
  .gal{padding-top:42px}
}

/* ═══ 頁首對齊主頁基準（2026-09-02b 老闆指正：各頁上緣邊寬大小不一、字體顏色不均）═══
   主頁量測值：列高 74px（上下內距 18px）、logo 42px、品牌字 1.14rem "Noto Serif TC"
   #F5F1E8、副標 Cormorant .6rem、選單字 .84rem #D8D2C4、預約鈕金框 #A9803F 字 #CDAC6A。
   所有子頁 header.top 一律套用同一組數值。 */
header.top .wrap,header.top>div{min-height:74px;display:flex;align-items:center}
header.top{padding-top:0;padding-bottom:0}
header.top .brand{gap:13px}
header.top .blogo{width:42px!important;height:42px!important}
header.top .brand b,header.top .btxt b{font-family:"Noto Serif TC",serif!important;font-size:1.14rem!important;letter-spacing:.16em!important;color:#F5F1E8!important;font-weight:500!important;line-height:1.2}
header.top .btxt small,header.top .brand small{font-family:"Cormorant Garamond",serif!important;font-size:.6rem!important;letter-spacing:.34em!important;color:#B9AE97!important;text-transform:uppercase;display:block}
header.top .topnav{gap:26px}
header.top .lnk,header.top .topnav a.lnk{font-size:.84rem!important;letter-spacing:.1em!important;color:#D8D2C4!important;font-weight:400!important}
header.top .lnk:hover,header.top .topnav a.lnk:hover{color:#CDAC6A!important}
header.top .book,header.top .topnav a.book{border:1px solid #A9803F!important;color:#CDAC6A!important;letter-spacing:.2em!important;font-size:.84rem!important;padding:10px 22px!important;border-radius:0!important;background:transparent}
header.top .book:hover{background:#A9803F!important;color:#1A1712!important}
@media(max-width:760px){
  header.top .wrap,header.top>div{min-height:60px}
  header.top .blogo{width:34px!important;height:34px!important}
  header.top .brand b,header.top .btxt b{font-size:1rem!important;letter-spacing:.1em!important}
}

/* ═══ 全站字級／框架統一（2026-09-02c 老闆指示：字體、大小、間隔、顏色、框架均等）═══
   量測發現四套並存的字級（h1 24~30.4px／h2 18.4~24.8／內文 13.1~16.5），統一為單一響應式階層：
   h1 = clamp(1.9rem,4vw,2.6rem)（與服務頁 hero 相同曲線）
   h2 = clamp(1.35rem,2.4vw,1.55rem)
   內文 = .98rem，行高 1.85
   內容框（卡片/表格/摺疊）圓角一律 2px。journal 與貼文頁未接本檔，維持原樣。 */
h1{font-size:clamp(1.9rem,4vw,2.6rem)!important;line-height:1.28}
h2{font-size:clamp(1.35rem,2.4vw,1.55rem)!important;line-height:1.42}
.wrap p{font-size:.98rem;line-height:1.85}
.card,details,.step,.box,.wrap table{border-radius:2px!important}
.wrap table{overflow:hidden}
/* 條款/CRM 文件頁的段落色與其他淺底頁的次要文字統一 */
.doc p,.doc li{color:#6B6256}
