:root{color-scheme:light;--paper:#f4f1e8;--ink:#26291f;--muted:#626451;--line:#d8d2bf;--forest:#313b2d}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans TC',sans-serif;line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:5px}
a:focus-visible,summary:focus-visible{outline:3px solid #a6662d;outline-offset:5px}
img{display:block;width:100%;height:auto}
h1,h2,h3,.brand{font-family:'Noto Serif TC',serif;font-weight:500;line-height:1.45}
h1{font-size:clamp(30px,4.5vw,58px);margin:18px 0;letter-spacing:.06em}
h2{font-size:clamp(25px,3vw,36px);margin:0 0 22px}
h3{font-size:23px;margin:0 0 10px}
p{margin:0 0 18px}
.skip-link{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:10}
.skip-link:focus{top:10px}
.header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px max(6vw,20px);border-bottom:1px solid var(--line)}
.brand{font-size:23px;letter-spacing:.14em;text-decoration:none;white-space:nowrap}
.header nav{display:flex;gap:24px;font-size:14px}
.header nav a{text-decoration:none}
.wrap{max-width:1180px;margin:auto;padding:0 32px}
.breadcrumb{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0;font-size:13px;color:var(--muted)}
.hero{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center;padding:12px 0 70px}
.eyebrow{color:var(--muted);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.hero .lead{color:var(--muted);font-size:16px;max-width:31em}
.hero-photo{aspect-ratio:4/5;object-fit:cover}
.hero.cabin .hero-photo{aspect-ratio:4/4.5}
.facts{display:flex;gap:10px 20px;flex-wrap:wrap;padding:16px 0;margin:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.btn{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 22px;text-decoration:none;border:1px solid var(--forest);font-size:14px;letter-spacing:.05em}
.btn.primary{background:var(--forest);color:#fff}
.btn:hover{background:#e5e0d2}
.btn.primary:hover{background:#47503e}
.note{font-size:13px;color:var(--muted);line-height:1.9}
.section{padding:64px 0;border-top:1px solid var(--line)}
.section-intro{max-width:44em;color:var(--muted);margin-bottom:28px}
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.room-card img{aspect-ratio:4/3;object-fit:cover;margin-bottom:22px}
.room-card p{font-size:14px;color:var(--muted)}
.room-card .room-meta{color:var(--ink);font-weight:500}
.space-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
figure{margin:0}
.space-grid img{aspect-ratio:4/3;object-fit:cover}
figcaption{font-size:13px;color:var(--muted);margin-top:12px}
.rate-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.rates{margin:0}
.rates div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:16px 0}
.rates dt{color:var(--muted)}
.rates dd{margin:0;font-weight:500}
.rates .amount{font-size:24px;white-space:nowrap}
.booking-note{background:#e9e5d8;padding:30px}
.booking-note ul{padding-left:1.25em;margin:0}
.booking-note li{margin-bottom:10px;font-size:14px}
.faq{max-width:850px}
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{cursor:pointer;font-size:17px;min-height:36px}
details p{margin:16px 0 0;color:var(--muted);font-size:15px}
.next-stay{display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--forest);color:var(--paper);padding:36px;margin-bottom:64px}
.next-stay p{margin:0;color:#dddcca}
.next-stay h2{font-size:25px;margin:0 0 8px}
.next-stay .btn{border-color:var(--paper);white-space:nowrap}
.next-stay .btn:hover{background:#47503e}
.footer{border-top:1px solid var(--line);padding:35px 0 90px;font-size:13px;color:var(--muted)}
.footer p{margin-bottom:8px}
.sticky{position:fixed;bottom:0;left:0;right:0;display:none;background:var(--forest);color:white;padding:10px 16px max(10px,env(safe-area-inset-bottom));z-index:5;gap:12px;box-shadow:0 -4px 20px #0001}
.sticky a{flex:1;text-align:center;min-height:44px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:14px;border:1px solid #ffffff70}
@media(max-width:760px){
 .wrap{padding:0 22px}.header{padding:16px 22px;align-items:flex-start}.brand{font-size:20px}.header nav{gap:8px;flex-direction:column;font-size:12px;text-align:right}
 .breadcrumb{margin:18px 0;font-size:12px}.hero{grid-template-columns:1fr;gap:26px;padding:5px 0 44px}.hero-photo,.hero.cabin .hero-photo{aspect-ratio:4/3}.hero h1{font-size:34px}.hero .lead{font-size:15px}.hero .actions{margin-bottom:12px}
 .section{padding:42px 0}.room-grid{grid-template-columns:1fr;gap:34px}.room-card{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.room-card img{margin:0;aspect-ratio:1/1}.room-card h3{font-size:21px}.room-card p{font-size:13px;margin-bottom:10px}
 .space-grid{gap:18px}.rate-grid{grid-template-columns:1fr;gap:24px}.booking-note{padding:24px}.next-stay{align-items:flex-start;flex-direction:column;padding:26px;margin-bottom:44px}.sticky{display:flex}
}
@media(max-width:390px){.wrap{padding:0 18px}.hero h1{font-size:30px}.btn{padding:12px 16px}.space-grid{grid-template-columns:1fr}.room-card{grid-template-columns:1fr}.room-card img{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
