/* ============================================================
   莫干山野盒子 · 逅山里 —— 新中式沉浸式静态站
   设计系统：东方留白 / 水墨意境 / 低饱和莫兰迪国风
   配色：月白 F5F2EA · 青灰 6B7A7C · 茶褐 8A6A4F · 竹青 74846B · 墨色 2F332B
   ============================================================ */

:root{
  --yue-bai:#F5F2EA;        /* 月白 */
  --yue-2:#ECE8DC;          /* 月白·深 */
  --ink:#2F332B;            /* 墨色 */
  --ink-soft:#66695D;       /* 墨色·浅 */
  --qhui:#6B7A7C;           /* 青灰 */
  --qhui-deep:#55626A;      /* 青灰·深 */
  --cha:#8A6A4F;            /* 茶褐 */
  --cha-deep:#6F4E36;       /* 茶褐·深 */
  --cha-soft:#B09577;       /* 茶褐·浅 */
  --zhu:#74846B;            /* 竹青 */
  --zhu-deep:#55624D;       /* 竹青·深 */
  --seal:#A34A3A;           /* 朱砂（仅点缀） */
  --mist:#D8D4C6;           /* 雾灰 */
  --line:rgba(47,51,43,.12);
  --foot:#2C302A;           /* 页脚墨青 */
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC","Source Han Sans SC","PingFang SC","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  font-size:15px;line-height:1.9;
  color:var(--ink-soft);
  background:var(--yue-bai);
  padding-bottom:96px;               /* 为悬浮电话按钮留出空间 */
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
button{font-family:inherit;background:none;border:none;cursor:pointer}
::selection{background:rgba(138,106,79,.25)}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:var(--yue-bai)}
::-webkit-scrollbar-thumb{background:var(--mist);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--cha-soft)}
:focus-visible{outline:1px solid var(--cha);outline-offset:3px;border-radius:2px}

/* ---------- 布局工具 ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.wrap-narrow{max-width:860px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.section{padding:clamp(72px,10vw,140px) 0}
.sec-head{text-align:center;margin-bottom:clamp(40px,6vw,76px)}
.eyebrow{
  display:inline-block;font-size:12px;letter-spacing:.5em;text-indent:.5em;
  color:var(--cha);margin-bottom:18px;font-family:var(--serif);
}
.sec-title{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(26px,3.6vw,36px);letter-spacing:.2em;text-indent:.2em;
  color:var(--ink);
}
.sec-sub{
  max-width:560px;margin:18px auto 0;font-size:15px;line-height:2;
  letter-spacing:.05em;color:var(--ink-soft);
}
.divider{width:56px;height:1px;margin:26px auto;position:relative;
  background:linear-gradient(90deg,transparent,var(--cha-soft),transparent)}
.divider::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;
  background:var(--cha);transform:translate(-50%,-50%) rotate(45deg)}
.divider.left{margin:24px 0}
.text-kicker{font-family:var(--serif);font-size:13px;letter-spacing:.4em;color:var(--cha);margin-bottom:16px}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 34px;border-radius:999px;
  font-family:var(--sans);font-size:14px;letter-spacing:.3em;text-indent:.3em;
  color:var(--ink);border:1px solid transparent;cursor:pointer;
  transition:all .45s var(--ease);white-space:nowrap;
}
.btn svg{flex:none}
.btn-phone{
  background:linear-gradient(135deg,#8A5A3C,#6F4A30);
  color:#FBF7EF;box-shadow:0 12px 32px rgba(111,74,48,.30);
}
.btn-phone:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(111,74,48,.38)}
.btn-phone:active{transform:translateY(0)}
.btn-ghost{border-color:rgba(47,51,43,.35);background:transparent;color:var(--ink)}
.btn-ghost:hover{border-color:var(--cha);color:var(--cha)}
.btn-line{border-color:rgba(247,244,236,.5);color:#F7F4EC}
.btn-line:hover{background:rgba(247,244,236,.12);border-color:#F7F4EC}

/* ---------- 顶部导航 ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:90;
  transition:background .5s ease,box-shadow .5s ease;
}
.site-header::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(245,242,234,.78),rgba(245,242,234,0));
  transition:opacity .5s ease;
}
.site-header.scrolled{background:rgba(245,242,234,.9);box-shadow:0 1px 0 var(--line);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.site-header.scrolled::before{opacity:0}
.site-header .inner{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.logo{display:flex;align-items:center;gap:13px}
.logo-img{width:38px;height:38px;flex:none;object-fit:contain}
.site-footer .logo-img{background:var(--yue-bai);border-radius:8px;padding:5px;box-sizing:border-box}
.logo-text{font-family:var(--serif);font-size:19px;letter-spacing:.16em;color:var(--ink);line-height:1.25}
.logo-sub{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.42em;color:var(--ink-soft);margin-top:2px}
.nav{display:flex;gap:clamp(16px,2.6vw,36px)}
.nav a{
  position:relative;font-size:14px;letter-spacing:.22em;color:var(--ink);
  opacity:.72;padding:8px 2px;transition:opacity .3s;
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;
  background:var(--cha);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);
}
.nav a:hover,.nav a.on{opacity:1}
.nav a.on::after,.nav a:hover::after{transform:scaleX(1)}
.btn-nav{padding:10px 22px;font-size:13px;letter-spacing:.2em;text-indent:.2em;gap:8px}

/* ---------- 移动端菜单 ---------- */
.menu-btn{display:none;width:44px;height:44px;position:relative;z-index:110}
.menu-btn span{position:absolute;left:12px;right:12px;height:1.5px;background:var(--ink);transition:.4s var(--ease)}
.menu-btn span:nth-child(1){top:18px}
.menu-btn span:nth-child(2){top:26px}
body.menu-open .menu-btn span:nth-child(1){top:22px;transform:rotate(45deg)}
body.menu-open .menu-btn span:nth-child(2){top:22px;transform:rotate(-45deg)}
.mobile-menu{
  position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;
  background:rgba(245,242,234,.96);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;
}
.mobile-menu.open{opacity:1;visibility:visible}
.mobile-menu nav{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.mobile-menu a{font-family:var(--serif);font-size:23px;letter-spacing:.3em;text-indent:.3em;color:var(--ink);padding:12px 24px;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.mobile-menu.open a{opacity:1;transform:none}
.mobile-menu a.m-phone{margin-top:26px;font-family:var(--sans);font-size:14px;letter-spacing:.25em;color:#FBF7EF;background:linear-gradient(135deg,#8A5A3C,#6F4A30);border-radius:999px;padding:15px 38px;box-shadow:0 12px 30px rgba(111,74,48,.3)}
.mobile-menu .m-note{margin-top:34px;font-size:12px;letter-spacing:.3em;color:var(--ink-soft)}

/* ---------- 首页首屏 ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;
}
.hero-bg{
  position:absolute;inset:-12% 0;z-index:0;
  background:url("../assets/hero-mountain.svg") center/cover no-repeat;
  background-color:#E6E2D5;will-change:transform;
}
.hero-photo{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s ease}
.hero-photo.loaded{opacity:1}
.hero-scrim{position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg,rgba(30,34,30,.10) 0%,rgba(30,34,30,.16) 45%,rgba(30,34,30,.55) 100%)}
.hero-content{position:relative;z-index:3;color:#F7F4EC;padding:0 24px;transform:translateY(-6%)}
.hero-eyebrow{font-size:12px;letter-spacing:.62em;text-indent:.62em;color:rgba(247,244,236,.85);margin-bottom:28px;font-family:var(--serif)}
.hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(36px,6.2vw,66px);letter-spacing:.26em;text-indent:.26em;line-height:1.35;
  text-shadow:0 2px 30px rgba(30,34,30,.25);
}
.hero-sub{
  max-width:520px;margin:30px auto 0;font-size:15px;line-height:2.1;letter-spacing:.08em;
  color:rgba(247,244,236,.82);
}
.hero-cta{margin-top:44px}
.scroll-cue{
  position:absolute;bottom:96px;left:50%;transform:translateX(-50%);z-index:3;
  color:rgba(247,244,236,.7);font-size:11px;letter-spacing:.55em;text-indent:.55em;
  animation:cuePulse 2.6s ease-in-out infinite;
}
.scroll-cue::after{content:"";display:block;width:1px;height:44px;margin:14px auto 0;
  background:linear-gradient(180deg,rgba(247,244,236,.8),transparent)}
@keyframes cuePulse{0%,100%{opacity:.5}50%{opacity:1}}

/* ---------- 子页页头 ---------- */
.page-hero{
  position:relative;text-align:center;overflow:hidden;
  padding:clamp(130px,18vh,190px) 0 clamp(58px,8vh,92px);
  background:url("../assets/hero-mountain.svg") center 28%/cover no-repeat;
  background-color:#E6E2D5;
}
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;
  background:linear-gradient(180deg,transparent,var(--yue-bai))}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,4.6vw,44px);letter-spacing:.24em;text-indent:.24em;color:var(--ink);line-height:1.4;
}
.page-hero .eyebrow{color:var(--cha);margin-bottom:20px}
.page-hero p.sub{max-width:480px;margin:16px auto 0;font-size:14px;letter-spacing:.06em;color:var(--ink-soft)}

/* ---------- 悬浮电话（全站永久） ---------- */
.float-call{
  position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:95;
  display:inline-flex;align-items:center;gap:11px;
  background:linear-gradient(135deg,#8A5A3C,#6F4A30);color:#FBF7EF;
  padding:15px 30px;border-radius:999px;
  font-size:14px;letter-spacing:.2em;text-indent:.2em;
  box-shadow:0 16px 44px rgba(60,35,20,.38);
  animation:floatIn .9s .7s var(--ease) both;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.float-call:hover{transform:translateX(-50%) translateY(-3px);box-shadow:0 22px 56px rgba(60,35,20,.46)}
.float-call::before{
  content:"";position:absolute;inset:-3px;border-radius:999px;
  border:1px solid rgba(163,74,58,.55);animation:ring 2.8s ease-out infinite;
}
@keyframes floatIn{from{opacity:0;transform:translateX(-50%) translateY(24px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@keyframes ring{0%{transform:scale(1);opacity:.9}70%{transform:scale(1.14);opacity:0}100%{opacity:0}}

/* ---------- 图片容器（缺图时显示水墨占位） ---------- */
.frame{position:relative;overflow:hidden;border-radius:10px;background:var(--yue-2)}
.frame::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:url("../assets/ridge.svg"),linear-gradient(180deg,var(--t1,#E8E5DB),var(--t2,#D8D5C8));
  background-size:100% 42%,cover;
  background-position:bottom center,center;
  background-repeat:no-repeat,no-repeat;
}
.frame img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease,transform 1.5s var(--ease)}
.frame img.loaded{opacity:1}
.frame img.err{opacity:0}
.frame:hover img{transform:scale(1.045)}
.frame .frame-cap{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:42px 22px 16px;
  background:linear-gradient(180deg,transparent,rgba(30,34,30,.55));
  color:#F5F2EA;font-family:var(--serif);font-size:14px;letter-spacing:.3em;text-indent:.3em;
}
/* 占位色调 */
.tone-tea{--t1:#E6DCCB;--t2:#CFC2AC}
.tone-bamboo{--t1:#E3E5D9;--t2:#C8CDBE}
.tone-dusk{--t1:#E4DFDA;--t2:#CFC9C2}
.tone-night{--t1:#CBD0CE;--t2:#A9B0AE}
.tone-mist{--t1:#EAE7DD;--t2:#D9D5C7}

/* ---------- 首页：引言 ---------- */
.intro-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(36px,6vw,90px);align-items:center}
.intro-copy p{font-size:15.5px;line-height:2.15;letter-spacing:.04em;color:var(--ink-soft)}
.intro-copy p+p{margin-top:18px}
.intro-copy em{font-style:normal;color:var(--cha-deep);font-family:var(--serif)}
.mini-stats{display:flex;gap:clamp(18px,3vw,44px);margin-top:36px;flex-wrap:wrap}
.mini-stats .st{font-family:var(--serif);font-size:21px;letter-spacing:.1em;color:var(--ink)}
.mini-stats .st small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.3em;color:var(--ink-soft);margin-top:6px;font-weight:400}
.intro-img .frame{aspect-ratio:4/3;box-shadow:0 30px 70px rgba(47,51,43,.14)}

/* ---------- 首页：金句深色带 ---------- */
.quote-band{
  position:relative;background:linear-gradient(160deg,#33372F,#2C302A);color:#EFEBDF;
  padding:clamp(80px,11vw,150px) 0;text-align:center;overflow:hidden;
}
.quote-band::before{
  content:"";position:absolute;top:-1px;left:0;right:0;height:64px;
  background:url("../assets/ridge.svg") top center/100% 100% no-repeat;
  transform:scaleY(-1);opacity:.5;
}
.quote-band::after{
  content:"";position:absolute;bottom:-1px;left:0;right:0;height:64px;
  background:url("../assets/ridge.svg") top center/100% 100% no-repeat;opacity:.5;
}
.quote-mark{font-family:var(--serif);font-size:56px;color:rgba(176,149,119,.5);line-height:.6;display:block;margin-bottom:22px}
.quote-band q{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(22px,3.4vw,32px);letter-spacing:.18em;line-height:1.9;color:#EFEBDF}
.quote-band .q-from{margin-top:26px;font-size:12px;letter-spacing:.5em;text-indent:.5em;color:rgba(239,235,223,.55)}

/* ---------- 房型卡片 ---------- */
.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(22px,3.4vw,44px)}
.room-card{
  background:rgba(255,255,255,.5);border:1px solid var(--line);border-radius:12px;
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .55s var(--ease),box-shadow .55s var(--ease),border-color .55s;
}
.room-card:hover{transform:translateY(-7px);box-shadow:0 26px 60px rgba(47,51,43,.13);border-color:rgba(138,106,79,.35)}
.room-card .frame{aspect-ratio:16/11;border-radius:0}
.room-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.room-name{font-family:var(--serif);font-size:21px;letter-spacing:.14em;color:var(--ink);font-weight:500}
.room-meta{margin-top:7px;font-size:12px;letter-spacing:.22em;color:var(--cha);font-family:var(--serif)}
.room-desc{margin-top:14px;font-size:14px;line-height:2;letter-spacing:.03em;color:var(--ink-soft)}
.room-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;margin-bottom:20px}
.tag{font-size:11px;letter-spacing:.16em;color:var(--zhu-deep);
  border:1px solid rgba(116,132,107,.45);padding:4px 12px;border-radius:999px;white-space:nowrap}
.room-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:auto;padding-top:18px;border-top:1px dashed var(--line)}
.room-foot .note{font-size:12px;letter-spacing:.12em;color:var(--ink-soft)}
.room-foot .note b{font-family:var(--serif);font-weight:400;color:var(--cha-deep);letter-spacing:.05em}
.btn-sm{padding:10px 22px;font-size:13px;letter-spacing:.22em;text-indent:.22em;gap:8px}
.center-btn{text-align:center;margin-top:clamp(36px,5vw,56px)}

/* ---------- 首页：环境掠影 ---------- */
.env-show{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(16px,2.4vw,28px)}
.env-show .col{display:flex;flex-direction:column;gap:clamp(16px,2.4vw,28px)}
.env-show .frame{width:100%}
.env-show .frame.big{aspect-ratio:4/3}
.env-show .frame.small{aspect-ratio:16/9}

/* ---------- 首页：体验清单 ---------- */
.exp-list{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.6vw,30px)}
.exp-item{
  border:1px solid var(--line);border-radius:12px;padding:26px 22px 24px;text-align:left;
  background:rgba(255,255,255,.35);transition:transform .5s var(--ease),border-color .5s,box-shadow .5s;
}
.exp-item:hover{transform:translateY(-5px);border-color:rgba(138,106,79,.3);box-shadow:0 18px 44px rgba(47,51,43,.09)}
.exp-item .num{font-family:var(--serif);font-size:30px;color:rgba(138,106,79,.45);letter-spacing:.05em}
.exp-item h3{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:.2em;color:var(--ink);margin:12px 0 10px}
.exp-item p{font-size:13px;line-height:1.95;color:var(--ink-soft);letter-spacing:.02em}

/* ---------- 首页：预订 CTA 带 ---------- */
.cta-band{
  position:relative;text-align:center;overflow:hidden;
  padding:clamp(80px,11vw,150px) 0;
  background:url("../assets/hero-mountain.svg") center 62%/cover no-repeat;background-color:#E0DCCE;
}
.cta-band::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(245,242,234,.94),rgba(245,242,234,.78))}
.cta-band .wrap{position:relative;z-index:2}
.cta-band h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,4vw,40px);letter-spacing:.22em;text-indent:.22em;color:var(--ink);line-height:1.5}
.cta-band p{margin-top:18px;font-size:14px;letter-spacing:.12em;color:var(--ink-soft)}
.cta-band .btn{margin-top:38px}

/* ---------- 环境页 ---------- */
.env-block{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(32px,6vw,84px);align-items:center}
.env-block+.env-block{margin-top:clamp(64px,9vw,120px)}
.env-block.flip .env-img{order:2}
.env-img .frame{aspect-ratio:4/3.1;box-shadow:0 26px 60px rgba(47,51,43,.12)}
.env-txt h3{font-family:var(--serif);font-weight:500;font-size:clamp(21px,2.8vw,27px);letter-spacing:.18em;color:var(--ink);margin:10px 0 16px}
.env-txt p{font-size:14.5px;line-height:2.1;color:var(--ink-soft);letter-spacing:.03em}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.gallery a{display:block;border-radius:8px;overflow:hidden}
.gallery .frame{aspect-ratio:1;border-radius:8px}

/* ---------- 灯箱 ---------- */
.lightbox{
  position:fixed;inset:0;z-index:130;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:16px;
  background:rgba(28,30,26,.94);opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s;
}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{max-width:88vw;max-height:74vh;object-fit:contain;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox-cap{font-family:var(--serif);font-size:13px;letter-spacing:.35em;text-indent:.35em;color:rgba(245,242,234,.75)}
.lightbox-close{position:absolute;top:22px;right:26px;width:44px;height:44px;color:#F5F2EA;font-size:26px;line-height:1;opacity:.7;transition:opacity .3s,transform .4s}
.lightbox-close:hover{opacity:1;transform:rotate(90deg)}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(245,242,234,.35);color:#F5F2EA;font-size:20px;display:flex;align-items:center;justify-content:center;
  opacity:.65;transition:opacity .3s,background .3s}
.lightbox-nav:hover{opacity:1;background:rgba(245,242,234,.1)}
.lightbox-prev{left:clamp(10px,3vw,40px)}
.lightbox-next{right:clamp(10px,3vw,40px)}

/* ---------- 体验页 ---------- */
.exp-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,96px);align-items:center}
.exp-row+.exp-row{margin-top:clamp(64px,9vw,116px)}
.exp-row.flip .exp-media{order:2}
.exp-media .frame{aspect-ratio:4/3;box-shadow:0 26px 60px rgba(47,51,43,.12)}
.exp-media .frame-cap{font-size:12px;letter-spacing:.28em}
.exp-txt .num{font-family:var(--serif);font-size:34px;color:rgba(138,106,79,.4);letter-spacing:.08em}
.exp-txt h3{font-family:var(--serif);font-weight:500;font-size:clamp(21px,2.8vw,27px);letter-spacing:.18em;color:var(--ink);margin:12px 0 16px}
.exp-txt p{font-size:14.5px;line-height:2.15;color:var(--ink-soft);letter-spacing:.03em}
.exp-txt p+p{margin-top:12px}

/* ---------- 交通页 ---------- */
.route-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,30px)}
.route-card{
  border:1px solid var(--line);border-radius:12px;padding:30px 26px;
  background:rgba(255,255,255,.4);transition:transform .5s var(--ease),border-color .5s,box-shadow .5s;
}
.route-card:hover{transform:translateY(-5px);border-color:rgba(138,106,79,.3);box-shadow:0 18px 44px rgba(47,51,43,.09)}
.route-card .r-icon{width:46px;height:46px;border-radius:50%;border:1px solid rgba(138,106,79,.4);
  display:flex;align-items:center;justify-content:center;color:var(--cha);margin-bottom:20px}
.route-card h3{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:.22em;color:var(--ink);margin-bottom:12px}
.route-card p{font-size:13.5px;line-height:2;color:var(--ink-soft);letter-spacing:.02em}
.route-card .r-time{display:inline-block;margin-top:14px;font-size:12px;letter-spacing:.18em;color:var(--cha-deep);border:1px solid rgba(138,106,79,.35);padding:4px 14px;border-radius:999px}
.map-panel{margin-top:clamp(44px,6vw,72px)}
.map-panel .frame{aspect-ratio:16/9.6;border:1px solid var(--line);border-radius:12px}
.map-panel img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}
.map-note{margin-top:16px;text-align:center;font-size:12px;letter-spacing:.3em;text-indent:.3em;color:var(--ink-soft)}

/* ---------- 联系页 ---------- */
.phone-band{
  background:linear-gradient(160deg,#33372F,#2C302A);color:#EFEBDF;text-align:center;
  padding:clamp(72px,10vw,130px) 0;position:relative;overflow:hidden;
}
.phone-band::before{content:"";position:absolute;top:-1px;left:0;right:0;height:64px;
  background:url("../assets/ridge.svg") top center/100% 100% no-repeat;transform:scaleY(-1);opacity:.5}
.phone-band::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:64px;
  background:url("../assets/ridge.svg") top center/100% 100% no-repeat;opacity:.5}
.phone-band h2{font-family:var(--serif);font-weight:400;font-size:clamp(22px,3vw,30px);letter-spacing:.26em;text-indent:.26em}
.phone-band .big-num{
  display:block;margin:34px 0 8px;font-family:var(--serif);font-size:clamp(40px,7vw,72px);
  letter-spacing:.08em;color:#F5F0E2;line-height:1.15;
}
.phone-band .sub{font-size:13px;letter-spacing:.32em;text-indent:.32em;color:rgba(239,235,223,.6)}
.phone-band .btn{margin-top:42px}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,30px);margin-top:clamp(56px,8vw,90px)}
.info-card{border:1px solid var(--line);border-radius:12px;padding:34px 28px;background:rgba(255,255,255,.4);text-align:center}
.info-card .i-icon{width:48px;height:48px;margin:0 auto 20px;border-radius:50%;border:1px solid rgba(138,106,79,.4);
  display:flex;align-items:center;justify-content:center;color:var(--cha)}
.info-card h3{font-family:var(--serif);font-weight:500;font-size:16px;letter-spacing:.3em;color:var(--ink);margin-bottom:14px}
.info-card p{font-size:13.5px;line-height:2;color:var(--ink-soft);letter-spacing:.02em}
.info-card a.tel{font-family:var(--serif);font-size:19px;letter-spacing:.06em;color:var(--cha-deep);transition:color .3s}
.info-card a.tel:hover{color:var(--cha)}
.contact-notes{margin-top:56px;text-align:center;font-size:13px;letter-spacing:.14em;color:var(--ink-soft);line-height:2.2}
.contact-notes b{font-weight:400;color:var(--cha-deep)}

/* ---------- 页脚 ---------- */
.site-footer{background:var(--foot);color:#CFCBBE;padding:clamp(56px,8vw,84px) 0 0;margin-top:clamp(56px,8vw,90px)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:clamp(28px,5vw,70px)}
.f-brand .logo-text{color:#EFEBDF}
.f-brand .logo-sub{color:rgba(207,203,190,.6)}
.f-slogan{margin-top:22px;font-family:var(--serif);font-size:14px;letter-spacing:.18em;line-height:2.2;color:rgba(207,203,190,.75)}
.f-col h4{font-family:var(--serif);font-weight:500;font-size:14px;letter-spacing:.35em;color:#EFEBDF;margin-bottom:22px}
.f-col a{display:block;font-size:13px;letter-spacing:.2em;line-height:2.4;color:rgba(207,203,190,.75);transition:color .3s}
.f-col a:hover{color:#EFEBDF}
.f-col p{font-size:13px;letter-spacing:.08em;line-height:2.2;color:rgba(207,203,190,.65);margin-top:12px}
.f-col a.tel{font-family:var(--serif);font-size:16px;letter-spacing:.1em;color:#EFEBDF;line-height:1.6}
.footer-bottom{
  margin-top:clamp(40px,6vw,60px);border-top:1px solid rgba(207,203,190,.14);
  padding:22px 0 26px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;
  font-size:12px;letter-spacing:.14em;color:rgba(207,203,190,.55);
}
.footer-bottom a{transition:color .3s}
.footer-bottom a:hover{color:#EFEBDF}

/* ---------- 滚动显现 ---------- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s var(--ease)}
.js .reveal.in{opacity:1;transform:none}

/* ---------- 响应式 ---------- */
@media (max-width:1024px){
  .exp-list{grid-template-columns:repeat(2,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:960px){
  .nav,.btn-nav{display:none}
  .menu-btn{display:block}
  .intro-grid{grid-template-columns:1fr;gap:34px}
  .intro-img{max-width:640px}
  .env-block,.env-block.flip{grid-template-columns:1fr;gap:26px}
  .env-block.flip .env-img{order:0}
  .exp-row,.exp-row.flip{grid-template-columns:1fr;gap:26px}
  .exp-row.flip .exp-media{order:0}
  .route-grid{grid-template-columns:1fr}
  .info-grid{grid-template-columns:1fr}
  .room-grid{grid-template-columns:1fr;max-width:620px;margin:0 auto}
  .footer-grid{grid-template-columns:1fr 1fr}
  .f-brand{grid-column:1/-1}
}
@media (max-width:640px){
  .env-show{grid-template-columns:1fr}
  .exp-list{grid-template-columns:1fr}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr}
  .float-call{left:12px;right:12px;transform:none;justify-content:center;padding:14px 18px;font-size:13.5px;letter-spacing:.14em;text-indent:.14em}
  .float-call:hover{transform:translateY(-3px)}
  .float-call::before{display:none}
  @keyframes floatIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .hero-cta .btn{padding:15px 40px}
  .btn{padding:13px 26px;font-size:13px;letter-spacing:.22em;text-indent:.22em}
  .scroll-cue{bottom:86px}
  .room-foot{flex-direction:column;align-items:flex-start}
}
@media (max-width:420px){
  .logo-text{font-size:16px}
  .logo-sub{letter-spacing:.3em}
}

/* ---------- 减少动态偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .js .reveal{opacity:1;transform:none}
}
