/* ════════════════════════════════════════════
   麓居 LODGE · lodge.com.tw — Design System
   Palette: 松墨 #14201b / 米霜 #f4efe4 / 金針橙 #c9762b / 苔綠 #7d8f7d
   ════════════════════════════════════════════ */
:root{
  --ink:#14201b;
  --ink-soft:#22322b;
  --cream:#f4efe4;
  --cream-dim:#e9e2d2;
  --accent:#c9762b;
  --accent-soft:#d99a55;
  --sage:#7d8f7d;
  --serif:'Noto Serif TC',serif;
  --sans:'Noto Sans TC',sans-serif;
  --latin:'Cormorant Garamond',serif;
  --ease:cubic-bezier(.22,1,.36,1);
  /* 版面基準：導覽列、內容區塊、頁尾共用同一組側邊留白與內容上限 */
  --gutter:6vw;
  --measure:1440px;
  /* 一律以 vw 計算：固定定位的 .nav 與一般區塊的 % 基準不同（差一個捲軸寬），
     改用 vw 可讓導覽列、區塊、頁尾在所有平台上永遠對齊同一條垂直基準線 */
  --pad-x:max(var(--gutter),(100vw - var(--measure)) / 2);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  background:var(--cream);
  color:var(--ink);
  line-height:1.9;
  letter-spacing:.04em;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
::selection{background:var(--accent);color:var(--cream)}

/* ── 捲動進度 ── */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,var(--accent),var(--accent-soft));
  z-index:1001;transition:width .1s linear;
}
/* 頁首／頁尾樣式已移至 css/chrome.css（全站共用單一來源）；原 .nav / .footer 規則已移除 */


/* ── 主視覺 ── */
.hero{
  position:relative;min-height:100svh;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:-8%;
  background:url('../images/hero.webp') center/cover no-repeat;
  will-change:transform;
}
.hero__veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,32,27,.45) 0%,rgba(20,32,27,.25) 45%,rgba(20,32,27,.75) 100%);
}
.hero__inner{position:relative;text-align:center;color:var(--cream);padding:0 6vw}
.hero__eyebrow{
  font-size:.85rem;letter-spacing:.42em;font-weight:300;
  opacity:.85;margin-bottom:2.2rem;
}
.hero__title{display:flex;align-items:center;justify-content:center;gap:clamp(1.5rem,5vw,4rem);flex-wrap:wrap}
.hero__title-vertical{
  writing-mode:vertical-rl;
  font-family:var(--serif);font-weight:900;
  font-size:clamp(4.5rem,12vw,9rem);
  letter-spacing:.18em;line-height:1.1;
  text-shadow:0 10px 40px rgba(0,0,0,.5);
}
.hero__title-en{
  font-family:var(--latin);font-weight:400;font-style:italic;
  font-size:clamp(1.1rem,2.6vw,1.9rem);
  letter-spacing:.34em;text-align:left;line-height:1.7;opacity:.85;
}
.hero__tagline{
  margin-top:2.4rem;
  font-family:var(--serif);font-size:clamp(1.05rem,2.2vw,1.5rem);
  font-weight:400;letter-spacing:.22em;line-height:2.2;opacity:.92;
}
.hero__actions{margin-top:2.8rem;display:flex;gap:1.1rem;justify-content:center;flex-wrap:wrap}
.hero__domain{
  position:absolute;right:2.2vw;top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;
  font-family:var(--latin);font-size:.95rem;letter-spacing:.4em;
  color:rgba(244,239,228,.55);
}
.hero__scrollcue{
  position:absolute;bottom:2.4rem;left:50%;transform:translateX(-50%);
  font-family:var(--latin);font-size:.7rem;letter-spacing:.45em;
  color:rgba(244,239,228,.75);
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
}
.hero__scrollcue span{
  width:1px;height:52px;background:rgba(244,239,228,.5);
  position:relative;overflow:hidden;
}
.hero__scrollcue span::after{
  content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;
  background:var(--accent);animation:drip 1.8s var(--ease) infinite;
}
@keyframes drip{to{top:110%}}

/* ── 按鈕 ── */
.btn{
  display:inline-block;font-weight:700;font-size:.92rem;letter-spacing:.2em;
  padding:.95em 2.4em;border-radius:99px;cursor:pointer;border:0;
  transition:transform .35s var(--ease),box-shadow .35s,background .35s,color .35s;
}
.btn--solid{background:var(--accent);color:var(--cream)}
.btn--solid:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(201,118,43,.5)}
.btn--ghost{border:1.5px solid rgba(244,239,228,.7);color:var(--cream);background:transparent}
.btn--ghost:hover{background:rgba(244,239,228,.14);transform:translateY(-3px)}

/* ── 跑馬燈 ── */
.marquee{
  background:var(--ink);color:var(--cream);
  overflow:hidden;padding:.9rem 0;
  border-top:1px solid rgba(244,239,228,.1);
}
.marquee__track{display:flex;white-space:nowrap;animation:marquee 30s linear infinite;width:max-content}
.marquee__track span{
  font-family:var(--serif);font-size:.95rem;letter-spacing:.3em;padding-right:1em;
}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ── 通用段落 ── */
.section{padding:clamp(4.5rem,9vw,8.5rem) var(--pad-x);position:relative}
.section__head{margin-bottom:clamp(2.5rem,5vw,4rem)}
.section__no{
  display:inline-block;font-family:var(--serif);font-size:.85rem;
  color:var(--accent);border:1px solid var(--accent);
  width:2.3rem;height:2.3rem;border-radius:50%;
  line-height:2.3rem;text-align:center;margin-bottom:1rem;
}
.section__title{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(2rem,4.5vw,3.2rem);letter-spacing:.14em;line-height:1.25;
}
.section__title small{
  display:block;font-family:var(--latin);font-weight:400;font-style:italic;
  font-size:.36em;letter-spacing:.42em;color:var(--sage);margin-top:.5em;
}
.section__title--light{color:var(--cream)}
.section__sub{margin-top:1rem;color:var(--sage);font-size:.9rem;letter-spacing:.2em}

/* ── 浮現動畫 ── */
.reveal{opacity:0;transform:translateY(42px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ── 緣起 ── */
.about{background:var(--cream)}
.about__grid{
  display:grid;grid-template-columns:1.35fr 1fr;
  gap:clamp(2.5rem,6vw,6rem);align-items:start;
}
.about__big{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(1.35rem,2.6vw,1.9rem);
  line-height:2.1;letter-spacing:.1em;margin-bottom:1.8rem;color:var(--ink);
}
.about__lead p+p{margin-top:1.2rem;color:#3d4a42;font-size:.98rem}
.about__more{margin-top:1.8rem!important}
.about__more a{
  font-family:var(--serif);font-weight:700;font-size:.95rem;letter-spacing:.12em;
  color:var(--accent);border-bottom:1px solid rgba(201,118,43,.4);
  padding-bottom:.25em;transition:border-color .3s;
}
.about__more a:hover{border-bottom-color:var(--accent)}
.about__stats{
  display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;
}
.stat{
  background:#fff;border:1px solid rgba(20,32,27,.08);
  border-radius:1rem;padding:1.8rem 1.4rem;text-align:center;
  box-shadow:0 8px 24px rgba(20,32,27,.06);
  transition:transform .4s var(--ease),box-shadow .4s;
}
.stat:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(20,32,27,.12)}
.stat b{
  display:block;font-family:var(--latin);font-size:2.6rem;font-weight:600;
  color:var(--accent);line-height:1.1;
}
.stat i{font-style:normal;font-size:.8rem;letter-spacing:.18em;color:var(--sage)}

/* ── 四季 ── */
.seasons{background:var(--cream-dim);overflow:hidden}
.seasons__rail{
  display:flex;gap:1.6rem;overflow-x:auto;
  padding:1rem .5rem 2rem;
  scroll-snap-type:x mandatory;
  cursor:grab;
  -webkit-overflow-scrolling:touch;
}
.seasons__rail.is-dragging{cursor:grabbing;scroll-snap-type:none}
.seasons__rail::-webkit-scrollbar{height:6px}
.seasons__rail::-webkit-scrollbar-thumb{background:var(--accent);border-radius:99px}
.seasons__rail::-webkit-scrollbar-track{background:rgba(20,32,27,.08)}
.season-card{
  flex:0 0 clamp(280px,32vw,400px);
  scroll-snap-align:start;
  background:#fff;border-radius:1.2rem;overflow:hidden;
  box-shadow:0 10px 30px rgba(20,32,27,.09);
  transition:transform .45s var(--ease),box-shadow .45s;
  user-select:none;
}
.season-card:hover{transform:translateY(-8px);box-shadow:0 22px 48px rgba(20,32,27,.16)}
.season-card img{height:230px;width:100%;object-fit:cover;pointer-events:none}
.season-card__body{padding:1.6rem 1.7rem 2rem}
.season-card__month{
  font-family:var(--latin);font-style:italic;font-size:.85rem;
  letter-spacing:.24em;color:var(--accent);
}
.season-card h3{
  font-family:var(--serif);font-weight:700;font-size:1.45rem;
  letter-spacing:.14em;margin:.4rem 0 .7rem;
}
.season-card p{font-size:.9rem;color:#3d4a42;line-height:1.95}

/* ── 房型 ── */
.rooms{background:var(--cream)}
.rooms__grid{
  display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(2.5rem,5vw,4.5rem);align-items:start;
}
.rooms__visual{position:sticky;top:6.5rem}
.rooms__visual img{
  border-radius:1.2rem;width:100%;height:clamp(320px,44vw,540px);object-fit:cover;
  box-shadow:0 24px 60px rgba(20,32,27,.22);
}
.rooms__visual figcaption{
  margin-top:1rem;font-size:.82rem;letter-spacing:.16em;color:var(--sage);text-align:center;
}
.room-item{
  background:#fff;border:1px solid rgba(20,32,27,.08);
  border-radius:1rem;margin-bottom:1rem;overflow:hidden;
  transition:box-shadow .4s,border-color .4s;
}
.room-item.is-open{border-color:rgba(201,118,43,.5);box-shadow:0 12px 32px rgba(20,32,27,.1)}
.room-item__head{
  width:100%;display:flex;align-items:center;gap:1.2rem;
  background:none;border:0;cursor:pointer;
  padding:1.35rem 1.6rem;text-align:left;font-family:inherit;
}
.room-item__name{
  font-family:var(--serif);font-weight:700;font-size:1.15rem;letter-spacing:.1em;
  color:var(--ink);flex:1;
}
.room-item__meta{font-size:.8rem;letter-spacing:.12em;color:var(--sage)}
.room-item__toggle{
  position:relative;width:26px;height:26px;border-radius:50%;
  border:1.5px solid var(--accent);flex:none;transition:transform .4s var(--ease);
}
.room-item__toggle::before,.room-item__toggle::after{
  content:"";position:absolute;background:var(--accent);top:50%;left:50%;
  transform:translate(-50%,-50%);
}
.room-item__toggle::before{width:10px;height:1.5px}
.room-item__toggle::after{width:1.5px;height:10px;transition:opacity .3s}
.room-item.is-open .room-item__toggle{transform:rotate(180deg)}
.room-item.is-open .room-item__toggle::after{opacity:0}
.room-item__body{
  max-height:0;overflow:hidden;transition:max-height .55s var(--ease);
}
.room-item__body p{
  padding:0 1.6rem 1.5rem;font-size:.92rem;color:#3d4a42;
}
.rooms__note{font-size:.8rem;color:var(--sage);letter-spacing:.1em;margin-top:.5rem}

/* ── 餐桌 ── */
.dining{
  background:var(--cream-dim);
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(2.5rem,5vw,5rem);align-items:center;
}
.dining__media img{
  border-radius:1.2rem;width:100%;height:clamp(300px,38vw,520px);object-fit:cover;
  box-shadow:0 24px 60px rgba(20,32,27,.2);
}
.dining__catch{
  font-family:var(--serif);font-weight:700;font-size:1.5rem;
  letter-spacing:.16em;color:var(--accent);margin-bottom:1.4rem;
}
.dining__text p{color:#3d4a42;font-size:.97rem}
.dining__text p+p{margin-top:1.1rem}
.dining__tags{list-style:none;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.dining__tags li{
  font-size:.8rem;letter-spacing:.16em;
  border:1px solid var(--sage);color:var(--sage);
  padding:.35em 1.1em;border-radius:99px;
}

/* ── 酒吧 ── */
.bar{
  background:
    radial-gradient(ellipse at 80% 20%,rgba(201,118,43,.14),transparent 55%),
    var(--ink);
  color:var(--cream);
}
.bar__inner{
  display:grid;grid-template-columns:1fr 1.1fr;
  gap:clamp(2.5rem,5vw,5rem);align-items:center;
}
.bar__text p{color:rgba(244,239,228,.78);font-size:.97rem;margin-top:1.4rem}
.bar__hours{
  font-family:var(--serif);letter-spacing:.18em;
  color:var(--accent-soft)!important;font-size:.9rem!important;
}
.bar__media img{
  border-radius:1.2rem;width:100%;height:clamp(300px,36vw,480px);object-fit:cover;
  box-shadow:0 24px 70px rgba(0,0,0,.55);
}

/* ── 寵物 ── */
.pets{background:var(--cream)}
.pets__grid{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:clamp(2.5rem,5vw,4.5rem);align-items:start;
}
.pets__media img{
  border-radius:1.2rem;width:100%;height:clamp(300px,36vw,480px);object-fit:cover;
  box-shadow:0 24px 60px rgba(20,32,27,.2);
}
.pets__lead{font-size:1rem;color:#3d4a42;margin-bottom:1.8rem}
.pets__plans{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:1.6rem}
.plan{
  background:#fff;border:1px solid rgba(20,32,27,.08);border-radius:1rem;
  padding:1.4rem 1.5rem;transition:transform .4s var(--ease),box-shadow .4s;
}
.plan:hover{transform:translateY(-5px);box-shadow:0 14px 32px rgba(20,32,27,.1)}
.plan h4{font-family:var(--serif);font-size:1.05rem;letter-spacing:.1em;margin-bottom:.5rem}
.plan b{font-family:var(--latin);font-size:1.35rem;color:var(--accent);margin-left:.4em}
.plan p{font-size:.85rem;color:#5a675f}
.accordion{border:1px solid rgba(20,32,27,.12);border-radius:1rem;overflow:hidden;background:#fff}
.accordion__head{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  background:none;border:0;cursor:pointer;font-family:var(--serif);
  font-weight:700;font-size:1rem;letter-spacing:.12em;
  padding:1.15rem 1.5rem;color:var(--ink);
}
.accordion__head span{
  width:22px;height:22px;border-radius:50%;border:1.5px solid var(--accent);
  position:relative;flex:none;transition:transform .4s var(--ease);
}
.accordion__head span::before,.accordion__head span::after{
  content:"";position:absolute;background:var(--accent);top:50%;left:50%;transform:translate(-50%,-50%);
}
.accordion__head span::before{width:9px;height:1.5px}
.accordion__head span::after{width:1.5px;height:9px}
.accordion.is-open .accordion__head span{transform:rotate(135deg)}
.accordion__body{max-height:0;overflow:hidden;transition:max-height .55s var(--ease)}
.accordion__body ol{
  padding:0 1.5rem 1rem 2.6rem;font-size:.88rem;color:#3d4a42;
}
.accordion__body li{margin-bottom:.55rem}
.pets__thanks{padding:0 1.5rem 1.4rem;font-size:.85rem;color:var(--accent);letter-spacing:.08em}

/* ── 訂房須知 ── */
.policy{background:var(--cream-dim)}
.policy__cards{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;
}
.policy-card{
  background:#fff;border-radius:1.2rem;padding:2rem 2.2rem;
  border-top:4px solid var(--accent);
  box-shadow:0 10px 30px rgba(20,32,27,.07);
  transition:transform .4s var(--ease),box-shadow .4s;
}
.policy-card:hover{transform:translateY(-6px);box-shadow:0 18px 42px rgba(20,32,27,.13)}
.policy-card h4{
  font-family:var(--serif);font-weight:700;font-size:1.2rem;
  letter-spacing:.14em;margin-bottom:1rem;color:var(--ink);
}
.policy-card p,.policy-card li{font-size:.9rem;color:#3d4a42}
.policy-card__big{
  font-family:var(--serif);font-size:1.5rem!important;font-weight:700;
  letter-spacing:.12em;color:var(--accent)!important;line-height:1.9;
}
.policy-card ul{list-style:none}
.policy-card li{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.55rem 0;border-bottom:1px dashed rgba(20,32,27,.14);
}
.policy-card li:last-child{border-bottom:0}
.policy-card li span{flex:none;color:var(--ink);font-weight:500}
.policy-card li b{font-weight:500;text-align:right}

/* ── 交通 ── */
.access{background:var(--cream)}
.tabs__nav{display:flex;gap:.8rem;margin-bottom:2rem;flex-wrap:wrap}
.tabs__btn{
  font-family:var(--serif);font-weight:700;font-size:.95rem;letter-spacing:.14em;
  padding:.7em 1.7em;border-radius:99px;cursor:pointer;
  border:1.5px solid rgba(20,32,27,.2);background:transparent;color:var(--ink-soft);
  transition:.35s var(--ease);
}
.tabs__btn.is-active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.tabs__btn:hover:not(.is-active){border-color:var(--accent);color:var(--accent)}
.tabs__pane{
  display:none;background:#fff;border-radius:1.2rem;
  padding:2.2rem 2.4rem;box-shadow:0 10px 30px rgba(20,32,27,.07);
}
.tabs__pane.is-active{display:block;animation:fadeUp .5s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.access__tip{
  font-size:.85rem;color:var(--accent);letter-spacing:.08em;
  margin-bottom:1.4rem;
}
.access__cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.access__cols h5{
  font-family:var(--serif);font-size:1.05rem;letter-spacing:.14em;
  margin-bottom:.6rem;color:var(--ink);
  padding-left:.8em;border-left:3px solid var(--accent);
}
.access__cols p{font-size:.9rem;color:#3d4a42}

/* ── 預約 ── */
.booking{
  background:
    radial-gradient(ellipse at 15% 85%,rgba(201,118,43,.16),transparent 55%),
    var(--ink);
  color:var(--cream);
}
.booking__inner{
  display:grid;grid-template-columns:1fr 1.15fr;
  gap:clamp(2.5rem,5vw,5rem);align-items:start;
}
.booking__text p{color:rgba(244,239,228,.75);margin-top:1.3rem}
.booking__domain{
  font-family:var(--serif);letter-spacing:.14em;margin-top:2rem!important;
  color:rgba(244,239,228,.9)!important;
}
.booking__domain b{color:var(--accent-soft);font-family:var(--latin);font-size:1.15em;letter-spacing:.1em}
.booking__card{
  background:rgba(244,239,228,.06);
  border:1px solid rgba(244,239,228,.14);
  border-radius:1.2rem;padding:2.2rem;
  backdrop-filter:blur(6px);
}

/* ── 深色底的聯絡條列（首頁預約區） ── */
.contact-line{
  display:block;padding:1.05rem 0;
  border-bottom:1px solid rgba(244,239,228,.13);
  transition:padding-left .35s var(--ease);
}
.contact-line:first-child{padding-top:0}
.contact-line:last-of-type{border-bottom:0}
a.contact-line:hover{padding-left:.6rem}
a.contact-line:hover .contact-line__value{color:var(--accent-soft)}
.contact-line__label{
  display:block;font-size:.76rem;letter-spacing:.24em;
  color:rgba(244,239,228,.55);margin-bottom:.25rem;
}
.contact-line__value{
  display:block;font-family:var(--latin);font-weight:600;
  font-size:1.6rem;letter-spacing:.05em;line-height:1.45;
  color:var(--cream);transition:color .3s;word-break:break-word;
}
.contact-line__note{
  display:block;margin-top:.2rem;font-size:.82rem;
  letter-spacing:.06em;color:rgba(244,239,228,.6);
}
.booking__cta{width:100%;margin-top:1.8rem;text-align:center}

/* ════════════════════════════════════════════
   內頁（關於 / 聯絡 / 隱私權 / 服務條款）
   ════════════════════════════════════════════ */

/* ── 內頁主視覺 ── */
.subhero{
  position:relative;overflow:hidden;
  background:var(--ink);color:var(--cream);
  padding:clamp(7.5rem,14vw,10.5rem) var(--pad-x) clamp(2.8rem,5vw,4.2rem);
  min-height:clamp(320px,46vh,470px);
  display:flex;align-items:flex-end;
}
.subhero__bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:.48;transform:scale(1.04);
}
.subhero__veil{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,32,27,.84) 0%,rgba(20,32,27,.5) 45%,rgba(20,32,27,.94) 100%);
}
.subhero__inner{position:relative;max-width:64ch}
.subhero__title{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(2.1rem,5vw,3.4rem);letter-spacing:.14em;line-height:1.25;
}
.subhero__title small{
  display:block;font-family:var(--latin);font-weight:400;font-style:italic;
  font-size:.34em;letter-spacing:.42em;color:var(--accent-soft);margin-top:.55em;
}
.subhero__lead{
  margin-top:1.5rem;font-size:.98rem;line-height:2.05;
  color:rgba(244,239,228,.82);
}
.crumb{
  font-family:var(--latin);font-size:.8rem;letter-spacing:.26em;
  color:rgba(244,239,228,.6);margin-bottom:1.2rem;
}
.crumb a{transition:color .3s}
.crumb a:hover{color:var(--accent-soft)}
.crumb i{font-style:normal;margin:0 .8em;opacity:.45}

/* ── 內頁通用區塊 ── */
.page{padding:clamp(3.8rem,7.5vw,6.5rem) var(--pad-x)}
.page--cream{background:var(--cream)}
.page--dim{background:var(--cream-dim)}
.page__head{margin-bottom:clamp(2rem,4vw,3rem)}
.page__title{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(1.6rem,3.2vw,2.3rem);letter-spacing:.14em;line-height:1.35;
}
.page__title small{
  display:block;font-family:var(--latin);font-weight:400;font-style:italic;
  font-size:.4em;letter-spacing:.4em;color:var(--sage);margin-top:.5em;
}
/* 選擇器要比下方的 .body-col p 更明確，否則導言會被壓回內文級距 */
.lede,.body-col p.lede{
  font-family:var(--serif);font-weight:700;
  font-size:clamp(1.2rem,2.4vw,1.7rem);
  line-height:2.05;letter-spacing:.1em;color:var(--ink);
  margin-bottom:1.8rem;
}
.body-col{max-width:74ch}
.body-col p{color:#3d4a42;font-size:.98rem}
.body-col p+p{margin-top:1.2rem}
.body-col a{color:var(--accent);border-bottom:1px solid rgba(201,118,43,.4);transition:border-color .3s}
.body-col a:hover{border-bottom-color:var(--accent)}

/* ── 圖文並排：長文區塊右側補圖，避免大片留白 ── */
.story{
  display:grid;grid-template-columns:1.35fr 1fr;
  gap:clamp(2.2rem,4.5vw,4.2rem);align-items:start;
}
/* 圖在左時要調換欄寬，文字欄才不會被壓窄；
   這段內文短、圖片直幅，靠中對齊才不會在右下角留一塊空白 */
.story--flip{grid-template-columns:1fr 1.35fr;align-items:center}
.story--flip .story__media img{height:clamp(300px,36vw,480px)}
/* 欄寬已由 grid 決定，body-col 的字數上限在這裡會反而讓右欄推不開 */
.story .body-col{max-width:none}
.story__media{position:sticky;top:6.5rem}
.story__media img{
  border-radius:1.2rem;width:100%;height:clamp(340px,42vw,560px);object-fit:cover;
  box-shadow:0 24px 60px rgba(20,32,27,.2);
}
.story__media figcaption{
  margin-top:.95rem;font-size:.78rem;letter-spacing:.14em;
  line-height:1.9;color:var(--sage);text-align:center;
}
/* 時刻表那欄很長，右側改用上下兩張撐開高度 */
.story__media--stack{display:grid;gap:1.1rem}
.story__media--stack img{height:clamp(190px,22vw,272px)}
.story__media--stack figcaption{margin-top:0}

/* ── 三欄重點卡 ── */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pillar{
  background:#fff;border:1px solid rgba(20,32,27,.08);border-radius:1.1rem;
  padding:2rem 1.9rem;box-shadow:0 10px 28px rgba(20,32,27,.06);
  transition:transform .4s var(--ease),box-shadow .4s;
}
.pillar:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(20,32,27,.12)}
.pillar__no{
  font-family:var(--latin);font-style:italic;font-size:.85rem;
  letter-spacing:.28em;color:var(--accent);
}
.pillar h3{
  font-family:var(--serif);font-weight:700;font-size:1.22rem;
  letter-spacing:.12em;margin:.5rem 0 .8rem;
}
.pillar p{font-size:.92rem;color:#3d4a42}

/* ── 一日時刻表 ── */
.timeline{border-left:1px solid rgba(20,32,27,.16);margin-left:.55rem}
.timeline__row{position:relative;padding:0 0 1.9rem 2.1rem}
.timeline__row:last-child{padding-bottom:0}
.timeline__row::before{
  content:"";position:absolute;left:-5px;top:.65rem;
  width:9px;height:9px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 4px var(--cream);
}
.timeline__time{
  font-family:var(--latin);font-size:1.15rem;letter-spacing:.14em;
  color:var(--accent);line-height:1.4;
}
.timeline__row h3{
  font-family:var(--serif);font-weight:700;font-size:1.05rem;
  letter-spacing:.1em;margin:.1rem 0 .4rem;
}
.timeline__row p{font-size:.92rem;color:#3d4a42}

/* ── 誠實提醒（深色） ── */
.caveat{
  background:
    radial-gradient(ellipse at 85% 12%,rgba(201,118,43,.14),transparent 55%),
    var(--ink);
  color:var(--cream);
}
.caveat__grid{
  display:grid;grid-template-columns:1fr 1.35fr;
  gap:clamp(2.5rem,5vw,5rem);align-items:start;
}
.caveat__intro p{margin-top:1.3rem;color:rgba(244,239,228,.76);font-size:.96rem}
.caveat__list{display:grid;gap:1.1rem}
.caveat__item{
  border:1px solid rgba(244,239,228,.16);border-radius:1rem;
  background:rgba(244,239,228,.05);padding:1.5rem 1.7rem;
}
.caveat__item h3{
  font-family:var(--serif);font-weight:700;font-size:1.05rem;
  letter-spacing:.12em;color:var(--cream);margin-bottom:.5rem;
}
.caveat__item p{font-size:.92rem;color:rgba(244,239,228,.78)}

/* ── 聯絡卡 ── */
/* 六張卡片，桌機排成 3×2，比 4+2 的孤行整齊 */
.contact__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:1.3rem}
.contact-card{
  display:block;background:#fff;border:1px solid rgba(20,32,27,.08);
  border-radius:1.1rem;padding:1.9rem 1.9rem 1.7rem;
  box-shadow:0 10px 28px rgba(20,32,27,.06);
  transition:transform .4s var(--ease),box-shadow .4s,border-color .4s;
}
a.contact-card:hover{
  transform:translateY(-6px);border-color:rgba(201,118,43,.45);
  box-shadow:0 20px 44px rgba(20,32,27,.13);
}
.contact-card__label{
  display:block;font-family:var(--latin);font-style:italic;
  font-size:.85rem;letter-spacing:.24em;color:var(--accent);margin-bottom:.75rem;
}
.contact-card__value{
  display:block;font-family:var(--serif);font-weight:700;
  font-size:1.3rem;letter-spacing:.06em;color:var(--ink);
  line-height:1.55;word-break:break-word;
}
.contact-card--tel .contact-card__value{
  font-family:var(--latin);font-size:1.95rem;letter-spacing:.04em;
}
.contact-card__note{
  display:block;margin-top:.65rem;font-size:.85rem;
  line-height:1.85;color:#5a675f;
}

/* ── 常見問題 ── */
/* 問答區與導覽列共用同一條垂直基準線：不另設字數上限，寬度交給 .page 的 --pad-x */
.qa{border-top:1px solid rgba(20,32,27,.13)}
.qa__item{border-bottom:1px solid rgba(20,32,27,.13);padding:1.5rem 0}
.qa__q{
  display:flex;gap:.75rem;
  font-family:var(--serif);font-weight:700;font-size:1.05rem;
  letter-spacing:.1em;color:var(--ink);margin-bottom:.55rem;
}
.qa__q::before{
  content:"Q";font-family:var(--latin);font-style:italic;
  color:var(--accent);flex:none;line-height:inherit;
}
.qa__a{padding-left:1.6rem;font-size:.93rem;color:#3d4a42}
.qa__a a{color:var(--accent);border-bottom:1px solid rgba(201,118,43,.4)}
/* 滿版之後單欄會拉出過長的行，寬螢幕改雙欄把每則問答的行寬拉回可讀範圍 */
@media (min-width:1024px){
  .qa{display:grid;grid-template-columns:repeat(2,1fr);column-gap:clamp(2.5rem,6vw,5.5rem)}
}

/* ── 條款／隱私權長文 ── */
.legal__grid{
  display:grid;grid-template-columns:230px 1fr;
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.legal__toc{position:sticky;top:6.5rem}
.legal__toc-label{
  font-family:var(--latin);font-style:italic;font-size:.85rem;
  letter-spacing:.26em;color:var(--sage);margin-bottom:.9rem;padding-left:1rem;
}
.legal__toc a{
  display:block;font-size:.86rem;line-height:1.7;color:#5a675f;
  padding:.42rem 0 .42rem 1rem;border-left:2px solid rgba(20,32,27,.12);
  transition:color .3s,border-color .3s;
}
.legal__toc a:hover,.legal__toc a.is-active{color:var(--accent);border-left-color:var(--accent)}
.doc{max-width:72ch}
.doc__updated{
  display:inline-block;font-size:.78rem;letter-spacing:.16em;color:var(--sage);
  border:1px solid rgba(125,143,125,.45);border-radius:99px;
  padding:.35em 1.2em;margin-bottom:2rem;
}
.doc h2{
  font-family:var(--serif);font-weight:700;font-size:1.28rem;
  letter-spacing:.12em;line-height:1.6;color:var(--ink);
  margin:2.9rem 0 1rem;padding-left:.75em;
  border-left:3px solid var(--accent);scroll-margin-top:5.5rem;
}
.doc>h2:first-child{margin-top:0}
.doc h3{
  font-family:var(--serif);font-weight:700;font-size:1.02rem;
  letter-spacing:.1em;color:var(--ink);margin:1.8rem 0 .55rem;
}
.doc p{font-size:.95rem;color:#3d4a42;margin-bottom:1rem}
.doc p:last-child{margin-bottom:0}
.doc ul,.doc ol{margin:0 0 1.25rem 1.35rem}
.doc li{font-size:.95rem;color:#3d4a42;margin-bottom:.55rem}
.doc li:last-child{margin-bottom:0}
.doc strong{color:var(--ink);font-weight:700}
.doc a{color:var(--accent);border-bottom:1px solid rgba(201,118,43,.4);transition:border-color .3s}
.doc a:hover{border-bottom-color:var(--accent)}
.doc dl{margin-bottom:1.3rem}
.doc dt{
  font-family:var(--serif);font-weight:700;font-size:1rem;
  letter-spacing:.08em;color:var(--ink);margin-top:1.2rem;
}
.doc dd{margin:.35rem 0 0;font-size:.93rem;color:#3d4a42}
.doc__note{
  background:#fff;border:1px solid rgba(20,32,27,.08);
  border-left:4px solid var(--accent);border-radius:.85rem;
  padding:1.35rem 1.55rem;margin:1.7rem 0;
}
.doc__note p{margin-bottom:0;font-size:.92rem}

/* ── 頁尾行動呼籲 ── */
.cta-band{
  background:
    radial-gradient(ellipse at 20% 90%,rgba(201,118,43,.16),transparent 55%),
    var(--ink);
  color:var(--cream);text-align:center;
  padding:clamp(3.8rem,7.5vw,5.8rem) var(--pad-x);
}
.cta-band h2{
  font-family:var(--serif);font-weight:900;
  font-size:clamp(1.6rem,3.4vw,2.4rem);letter-spacing:.14em;
}
.cta-band__tel{
  display:inline-block;font-family:var(--latin);font-weight:600;
  font-size:clamp(2rem,4.6vw,3rem);letter-spacing:.08em;
  color:var(--accent-soft);margin:1.6rem 0 .3rem;transition:opacity .3s;
}
.cta-band__tel:hover{opacity:.78}
.cta-band p{
  margin:.6rem auto 2.2rem;max-width:54ch;
  color:rgba(244,239,228,.75);font-size:.95rem;
}
.cta-band__actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ── 響應式 ── */
@media (max-width:1024px){
  .about__grid,.rooms__grid,.dining,.bar__inner,.pets__grid,.booking__inner{grid-template-columns:1fr}
  .rooms__visual{position:static}
  .dining__media{order:-1}
  .bar__media{order:2}
  .policy__cards{grid-template-columns:1fr}
  .caveat__grid,.legal__grid{grid-template-columns:1fr}
  .story,.story--flip{grid-template-columns:1fr}
  /* 單欄時一律圖先文後，三個區塊的節奏才一致 */
  .story__media{position:static;order:-1}
  .story__media img{height:clamp(240px,52vw,380px)}
  .story__media--stack img{height:clamp(200px,40vw,300px)}
  .pillars{grid-template-columns:1fr 1fr}
  .legal__toc{
    position:static;background:#fff;border-radius:1rem;
    border:1px solid rgba(20,32,27,.1);padding:1.4rem 1.6rem;
  }
  .legal__toc-label{padding-left:0}
  .legal__toc a{display:inline-block;margin-right:1.2rem;border-left:0;padding-left:0}
  .legal__toc a:hover,.legal__toc a.is-active{border-left:0}
}
@media (max-width:820px){
  .hero__domain{display:none}
  .about__stats{grid-template-columns:1fr 1fr}
  .access__cols,.pets__plans{grid-template-columns:1fr}
  .room-item__head{flex-wrap:wrap;gap:.5rem}
  .pillars,.contact__grid{grid-template-columns:1fr}
  .subhero{min-height:auto}
  .booking__card{padding:1.7rem 1.5rem}
  .contact-line__value{font-size:1.4rem}
  .doc h2{font-size:1.15rem}
}
