:root{
  --bg:#f6f1ea; --paper:#fffdf9; --ink:#1c1713; --muted:#706760; --line:#ddd2c1;
  --gold:#b48a3b; --dark:#1a1612; --shadow:0 18px 42px rgba(24,18,12,.08); --r:22px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.75;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html[lang="zh-CN"] body{font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Hiragino Sans GB",sans-serif}
html[lang="en"] body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
a{text-decoration:none;color:inherit} img{display:block;max-width:100%}
.header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;padding:12px 4.5vw;background:rgba(246,241,234,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px}.brand img{width:52px;height:52px;object-fit:contain}
.brand-copy{line-height:1.15}.brand-copy strong{display:block;font:600 14px Georgia,serif;letter-spacing:.12em}.brand-copy span{display:block;font-size:10px;color:var(--muted);letter-spacing:.15em;margin-top:4px}
.nav{display:flex;justify-content:center;gap:24px;font-size:12px}.nav a{position:relative}.nav a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:.2s}.nav a:hover::after{width:100%}
.lang{display:flex;gap:5px}.lang button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:6px 9px;font-size:11px;cursor:pointer}.lang button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.hero{position:relative;min-height:74vh;display:flex;align-items:flex-end;overflow:hidden}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.62))}
.hero-content{position:relative;z-index:1;color:#fff;padding:8vw 5vw;max-width:820px}
.eyebrow{margin:0 0 12px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.14em}.hero .eyebrow{color:#efd7a6}
h1,h2,h3{margin:0} h1{font:500 clamp(44px,7vw,88px)/1 Georgia,"Times New Roman",serif} h2{font:500 clamp(30px,4vw,52px)/1.3 "Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",Georgia,serif} html[lang="zh-CN"] h2{font-family:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif}
h3{font-size:20px;line-height:1.35}
.hero-lead{font-size:clamp(17px,2vw,23px);max-width:700px;color:#f4ede2;margin:22px 0 0}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 21px;border-radius:999px;font-weight:700;font-size:12px;border:1px solid var(--ink)}
.button.primary{background:var(--ink);color:white}.hero .button.primary{background:#fff;color:var(--ink);border-color:#fff}.button.ghost{border-color:rgba(255,255,255,.7);color:#fff;background:rgba(255,255,255,.08)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);background:var(--line);gap:1px}.facts div{background:var(--paper);padding:24px 14px;text-align:center}.facts strong{display:block;color:var(--gold);font:500 25px Georgia,serif}.facts span{font-size:12px;color:var(--muted)}
.section{padding:78px 5vw;border-top:1px solid var(--line)} .section-head{max-width:840px;margin-bottom:30px}.small-gap{margin-top:60px}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:start}.copy{font-size:17px;color:var(--muted)}.copy p{margin:0 0 18px}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chips span{padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);box-shadow:var(--shadow);font-size:13px}
.photo-band{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 5vw 78px}.photo-band img{height:250px;width:100%;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow)}
.room-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;align-items:start;background:var(--paper);border:1px solid var(--line);padding:28px;border-radius:28px;box-shadow:var(--shadow);margin-bottom:22px}
.badge{display:inline-block;padding:7px 12px;border-radius:999px;background:#efe4d2;color:#9d7430;font-size:12px;font-weight:700;margin-bottom:12px}
.room-spec{font-weight:700;color:var(--ink)} .room-card p{color:var(--muted)}
.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.room-grid img,.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}
.alt{background:#eee7db}.shared-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.shared-list div{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);font-size:13px}
.gallery.half{grid-template-columns:repeat(2,1fr)}
.large{font-size:18px;color:var(--muted);margin-top:0}.address-box{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.address-box span{display:block;font-size:11px;color:var(--gold);font-weight:700;margin-bottom:6px}.address-box strong{display:block;font-size:16px}.address-box a{display:inline-block;margin-top:10px;color:var(--gold);font-size:12px;font-weight:700}
.route-list,.cards{display:grid;gap:14px}.route-list article,.cards article{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:21px;box-shadow:var(--shadow)}.route-list p,.cards p{color:var(--muted);margin:8px 0 0}
.booking{margin:0 5vw 70px;padding:38px;display:flex;justify-content:space-between;align-items:center;gap:30px;border-radius:28px;background:var(--dark);color:#fff}.booking p{color:#d8cec0}
footer{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:34px 5vw 50px;background:#e9dfd1;border-top:1px solid var(--line)}.footer-brand{display:flex;align-items:flex-start;gap:14px}.footer-brand img{width:52px;height:52px;object-fit:contain}.footer-brand strong{display:block;font:500 19px Georgia,serif}.footer-brand span{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.footer-label{font-size:11px;color:var(--gold);font-weight:700}.footer-contact a,.footer-contact span:not(.footer-label){font-size:13px;color:var(--muted)}
@media(max-width:980px){.nav{display:none}.two-col,.room-card{grid-template-columns:1fr}.photo-band{grid-template-columns:1fr 1fr}.facts{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.header{grid-template-columns:1fr auto;padding:10px 4vw}.brand-copy{display:none}.brand img{width:44px;height:44px}.hero{min-height:66vh}.hero-content{padding:90px 5vw 54px}.section{padding:56px 5vw}.photo-band{padding:0 5vw 56px}.photo-band img{height:180px}.room-grid,.gallery,.shared-list,.gallery.half{grid-template-columns:1fr 1fr}.booking{flex-direction:column;align-items:flex-start;padding:28px}footer{grid-template-columns:1fr}}


.room-feature-note{
  display:flex;align-items:center;gap:16px;margin:30px 0 8px;padding:20px 22px;
  background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)
}
.feature-icon{
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;background:var(--dark);color:#fff;font:700 13px Georgia,serif;letter-spacing:.08em
}
.room-feature-note strong{display:block;font-size:16px}
.room-feature-note p{margin:3px 0 0;color:var(--muted);font-size:13px}
.bottom-photo-section{
  position:relative;margin:0 5vw 70px;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);background:var(--paper)
}
.bottom-photo-section img{width:100%;height:min(42vw,500px);min-height:300px;object-fit:cover}
.bottom-photo-caption{
  position:absolute;left:22px;bottom:22px;padding:14px 18px;border-radius:14px;
  background:rgba(20,17,14,.78);color:#fff;backdrop-filter:blur(8px)
}
.bottom-photo-caption span{display:block;font-size:10px;letter-spacing:.12em;color:#e7cf9e;margin-bottom:2px}
.bottom-photo-caption strong{font-size:14px}

@media(max-width:700px){
  .bottom-photo-section{margin:0 5vw 56px;border-radius:20px}
  .bottom-photo-section img{height:56vw;min-height:250px}
  .bottom-photo-caption{left:14px;bottom:14px;right:14px}
}
