
/* 羲茗研茶 · Unified Premium UI v2 */
:root{
  --x-ink:#17221b; --x-ink2:#536057; --x-muted:#7f8981;
  --x-paper:#f7f5ef; --x-paper2:#eeece3; --x-white:#fffdf8;
  --x-green:#173c2c; --x-green2:#285942; --x-gold:#b18a4c;
  --x-line:rgba(23,34,27,.11); --x-shadow:0 22px 70px rgba(25,35,28,.10);
  --x-radius:24px; --x-max:1240px;
}
html{scroll-behavior:smooth}
body{
  margin:0!important;background:var(--x-paper)!important;color:var(--x-ink)!important;
  font-family:"Noto Sans SC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  line-height:1.7;-webkit-font-smoothing:antialiased;
}
a{color:inherit}
img{display:block;max-width:100%}
.b-nav{
  position:fixed!important;z-index:1000!important;inset:0 0 auto!important;height:72px!important;
  background:rgba(247,245,239,.82)!important;backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(23,34,27,.08)!important;
}
.b-nav-inner{max-width:var(--x-max)!important;height:100%;margin:auto!important;padding:0 28px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
.b-logo{display:flex!important;align-items:center!important;gap:10px;text-decoration:none!important}
.b-logo-img{width:35px!important;height:35px!important;object-fit:cover;border-radius:50%!important;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.b-nav-list{display:flex!important;align-items:center!important;gap:38px!important;list-style:none!important;margin:0!important;padding:0!important}
.b-nav-list a{font-size:14px!important;color:var(--x-ink2)!important;position:relative;padding:25px 0!important;text-decoration:none!important;transition:.25s}
.b-nav-list a:hover,.b-nav-list a.active{color:var(--x-green)!important}
.b-nav-list a.active:after{content:""!important;position:absolute!important;left:50%!important;bottom:14px!important;width:18px!important;height:2px!important;background:var(--x-gold)!important;transform:translateX(-50%)!important}
.b-nav-icon{width:40px!important;height:40px!important;border:1px solid var(--x-line)!important;border-radius:50%!important;display:grid!important;place-items:center!important;transition:.25s;text-decoration:none!important}
.b-nav-icon:hover{background:var(--x-green)!important;color:#fff!important;transform:translateY(-2px)}
.x-menu{display:none;width:40px;height:40px;border:1px solid var(--x-line);border-radius:50%;background:transparent;align-items:center;justify-content:center;cursor:pointer}
.x-menu span,.x-menu span:before,.x-menu span:after{display:block;width:16px;height:1.5px;background:currentColor;position:relative;transition:.25s}
.x-menu span:before,.x-menu span:after{content:"";position:absolute;left:0}
.x-menu span:before{top:-5px}.x-menu span:after{top:5px}
.b-nav.is-open .x-menu span{background:transparent}.b-nav.is-open .x-menu span:before{transform:rotate(45deg);top:0}.b-nav.is-open .x-menu span:after{transform:rotate(-45deg);top:0}

.b-hero{
  min-height:68vh!important;padding:125px 5vw 72px!important;align-items:center!important;
  position:relative;overflow:hidden!important;background:
  radial-gradient(circle at 10% 25%,rgba(177,138,76,.12),transparent 28%),
  radial-gradient(circle at 85% 55%,rgba(40,89,66,.13),transparent 34%),var(--x-paper)!important;
}
.b-hero:before{content:"";position:absolute;inset:auto -10% -55% 35%;height:90%;background:radial-gradient(ellipse,rgba(40,89,66,.12),transparent 65%);pointer-events:none}
.b-hero-content{max-width:760px!important;position:relative;z-index:2;margin:0 auto;width:min(100%,var(--x-max));padding:0 28px}
.b-hero-eyebrow,.b-eyebrow{margin:0 0 14px!important;color:var(--x-gold)!important;font-size:12px!important;font-weight:700!important;letter-spacing:.2em!important;text-transform:uppercase}
.b-hero-title{font-family:Georgia,"Songti SC","STSong",serif!important;font-weight:500!important;font-size:clamp(48px,6vw,78px)!important;line-height:1.08!important;letter-spacing:-.045em!important;margin:0 0 25px!important}
.b-hero-sub{font-size:16px!important;color:var(--x-ink2)!important;margin:0!important;letter-spacing:.03em;max-width:700px}
.b-hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.b-link{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:48px!important;
 padding:0 23px!important;border:1px solid var(--x-green)!important;color:var(--x-green)!important;
 border-radius:999px!important;font-size:14px!important;text-decoration:none!important;transition:.3s!important;
}
.b-link:hover{background:var(--x-green)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 10px 24px rgba(23,60,44,.16)}
.b-section{padding:115px 28px!important}
.b-container{max-width:var(--x-max)!important;margin:auto!important}
.b-section-title{font-family:Georgia,"Songti SC","STSong",serif!important;font-weight:500!important;font-size:clamp(34px,4vw,56px)!important;line-height:1.2!important;letter-spacing:-.035em!important;margin:0!important}
.b-section-sub{max-width:720px;color:var(--x-muted)!important;font-size:15px!important;margin:18px 0 0!important}
.b-power-grid{margin-top:55px!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:20px!important}
.b-power-card{min-width:0!important;background:rgba(255,255,255,.48);border:1px solid rgba(23,34,27,.07);border-radius:20px;padding:24px;transition:.35s;box-shadow:0 12px 40px rgba(25,35,28,.04)}
.b-power-card:hover{transform:translateY(-5px);box-shadow:var(--x-shadow)}
.b-power-tag{font-size:13px!important;letter-spacing:.05em!important;margin:0 0 15px!important;color:var(--x-ink2)!important}
.b-power-tag .num{color:var(--x-gold)!important;margin-right:8px}
.b-power-image{aspect-ratio:4/5;overflow:hidden;border-radius:18px;background:#ddd}
.b-power-image img{width:100%;height:100%;object-fit:cover;transition:.8s}.b-power-card:hover img{transform:scale(1.04)}

.b-journal-grid{margin-top:55px!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:42px 22px!important}
.b-journal-card{display:block!important;text-decoration:none!important;min-width:0;transition:.3s}
.b-journal-image{aspect-ratio:1.18;overflow:hidden;border-radius:20px;background:#ddd}
.b-journal-image img{width:100%;height:100%;object-fit:cover;transition:.8s}.b-journal-card:hover img{transform:scale(1.05)}
.b-journal-meta{font-size:11px!important;color:var(--x-gold)!important;margin:18px 0 5px!important}
.b-journal-title{font-family:Georgia,"Songti SC","STSong",serif!important;font-size:22px!important;line-height:1.45!important;font-weight:500!important;margin:0!important}
.b-journal-card>p:last-child{color:var(--x-muted)!important;font-size:13px!important;margin-top:8px!important;line-height:1.7!important}

.b-cta{padding:110px 28px!important;text-align:center!important;background:var(--x-paper2)!important}
.b-cta-title{font-family:Georgia,"Songti SC","STSong",serif!important;font-size:clamp(36px,5vw,64px)!important;font-weight:500!important;line-height:1.2!important;letter-spacing:-.04em!important;margin:0!important}
.b-cta-sub{color:var(--x-muted)!important;font-size:14px!important;margin:18px auto 0!important;max-width:650px}
.b-footer{background:#13271e!important;color:rgba(255,255,255,.72)!important;padding:70px 28px 35px!important}
.b-footer-inner{max-width:var(--x-max)!important;margin:auto!important}
.b-footer-links{display:flex;gap:30px;flex-wrap:wrap}.b-footer-links a{color:#fff!important;font-size:14px;text-decoration:none}
.b-footer-entity{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:14px!important;border-top:1px solid rgba(255,255,255,.1)!important;margin-top:38px!important;padding-top:28px!important;font-size:12px!important}
.b-footer-entity span{display:flex;gap:8px;flex-direction:column}.b-footer-entity b{color:#fff;font-weight:500}
.b-footer-copy,.b-footer-legal{font-size:11px!important;color:rgba(255,255,255,.35)!important;margin:30px 0 0!important}.b-footer-legal a{color:rgba(255,255,255,.48)!important}
.b-footer-legal a:hover{color:#d5bb84!important}

#services{background:var(--x-paper)!important}
#process{background:var(--x-paper2)!important}
#services .b-service-grid{margin-top:55px}
.b-service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.b-service-card{padding:30px;border-radius:22px;background:var(--x-white);border:1px solid rgba(23,34,27,.08);min-height:185px;transition:.35s}
.b-service-card:hover{transform:translateY(-5px);box-shadow:var(--x-shadow)}
.b-service-no{font-size:11px;color:var(--x-gold);letter-spacing:.15em}
.b-service-card h3{font-family:Georgia,"Songti SC","STSong",serif;font-size:24px;font-weight:500;margin:16px 0 8px}
.b-service-card p{font-size:13px;color:var(--x-muted);margin:0}

.p-section{position:relative;padding:110px 28px!important;background:linear-gradient(120deg,#143628,#1f4c38)!important;overflow:hidden}
.p-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 15%,rgba(177,138,76,.15),transparent 30%),radial-gradient(circle at 85% 80%,rgba(255,255,255,.07),transparent 28%);pointer-events:none}
.p-section .b-section-title{color:#fff!important}.p-section .b-eyebrow{color:#d5bb84!important}.p-section .b-section-sub{color:rgba(255,255,255,.7)!important}
.p-carousel{position:relative;max-width:1120px;margin:55px auto 0;min-height:600px}
.p-card{background:rgba(255,255,255,.98)!important;border-radius:24px!important;overflow:hidden!important;box-shadow:0 24px 65px rgba(0,0,0,.2)!important;transition:opacity .6s ease,transform .7s cubic-bezier(.22,.61,.36,1),box-shadow .35s!important;cursor:pointer}
.p-card:hover{box-shadow:0 30px 80px rgba(0,0,0,.28)!important}
.p-card-img{background-size:cover!important;background-position:center!important}
.p-card-info{padding:40px 40px 40px 0}.p-card-tag{font-size:11px!important;color:var(--x-gold)!important;letter-spacing:.1em;margin:0 0 8px!important}
.p-card-name{font-family:Georgia,"Songti SC","STSong",serif!important;font-size:24px!important;font-weight:500!important;line-height:1.35!important;margin:0 0 10px!important}
.p-card-meta{font-size:12px!important;color:var(--x-green)!important;margin:0 0 10px!important}.p-card-desc{font-size:13px!important;color:var(--x-muted)!important;margin:0!important}
.p-controls{display:flex!important;align-items:center!important;justify-content:center!important;gap:24px!important;margin-top:28px!important}
.p-ctrl-btn{width:44px!important;height:44px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.3)!important;background:rgba(255,255,255,.08)!important;color:#fff!important;cursor:pointer!important;font-size:25px!important}
.p-ctrl-btn:hover{background:#d5bb84!important;color:var(--x-green)!important}
.p-dots{display:flex;gap:7px}.p-dots button{width:6px;height:6px;border-radius:50%;border:0;background:rgba(255,255,255,.35);padding:0}.p-dots button.active{background:#d5bb84;transform:scale(1.35)}

.b-qr-row{display:flex!important;justify-content:center!important;gap:55px!important}.b-qr-item{margin:0!important;text-align:center}.b-qr-item img{width:132px!important;height:132px!important;object-fit:cover;border-radius:10px;background:#fff;padding:6px}.b-qr-item figcaption{font-size:12px;color:var(--x-muted);margin-top:10px}

.site-header{position:relative!important}
.site-header .b-nav{position:fixed!important}
.page-hero-content{min-height:68vh!important;padding:145px 28px 85px!important;max-width:var(--x-max)!important;margin:auto!important;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.page-hero-content h1{font-family:Georgia,"Songti SC","STSong",serif!important;font-weight:500!important;font-size:clamp(48px,6vw,76px)!important;line-height:1.1!important;letter-spacing:-.04em!important;margin:10px 0 20px!important;color:var(--x-ink)!important}
.page-hero-sub{font-size:16px!important;color:var(--x-ink2)!important;max-width:650px}
.event-list{display:grid;gap:18px;margin-top:50px}
.event-card{display:grid!important;grid-template-columns:150px 1fr!important;gap:32px!important;background:var(--x-white)!important;border:1px solid var(--x-line)!important;border-radius:24px!important;padding:30px!important;box-shadow:0 10px 40px rgba(25,35,28,.04)!important;transition:.35s}
.event-card:hover{transform:translateY(-4px);box-shadow:var(--x-shadow)}
.event-date{display:flex;flex-direction:column;justify-content:center;align-items:center;background:var(--x-green);color:#fff;border-radius:18px;min-height:150px}
.event-day{font-family:Georgia,serif;font-size:58px;line-height:1}.event-month{font-size:11px;letter-spacing:.12em;color:#d5bb84;margin-top:10px}
.event-tag{font-size:11px;color:var(--x-gold);letter-spacing:.15em;margin:0 0 8px}.event-body h3{font-family:Georgia,"Songti SC","STSong",serif;font-size:28px;font-weight:500;margin:0 0 10px}.event-body>p{color:var(--x-muted);margin:0 0 18px}
.event-meta{list-style:none;padding:0;margin:0;display:grid;gap:7px;font-size:13px;color:var(--x-ink2)}
.section{padding:115px 28px!important}.container{max-width:var(--x-max)!important;margin:auto!important}
.section-eyebrow{margin:0 0 13px;color:var(--x-gold);font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.section-title{font-family:Georgia,"Songti SC","STSong",serif!important;font-size:clamp(34px,4vw,56px)!important;font-weight:500!important;line-height:1.2!important;margin:0!important}
.section-cream-2{background:var(--x-paper2)!important}
.biz-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}.biz-card{background:var(--x-white);border:1px solid var(--x-line);border-radius:22px;padding:24px}.biz-card h3{font-family:Georgia,"Songti SC","STSong",serif;font-size:23px;font-weight:500}.biz-card p{color:var(--x-muted);font-size:13px}.img-placeholder{aspect-ratio:16/9;border-radius:16px;background:linear-gradient(135deg,#d8d4c7,#f1eee6);display:grid;place-items:center;color:var(--x-muted);font-size:12px}
.section-cta{background:var(--x-green)!important;color:#fff}.section-cta .section-title,.section-cta .section-lede{color:#fff!important}
.site-footer{background:#13271e!important;color:rgba(255,255,255,.72)!important;padding:70px 28px 35px!important}.footer-inner{max-width:var(--x-max)!important;margin:auto!important}
.footer-brand{display:flex;gap:12px;align-items:center;color:#fff}.brand-mark img{width:38px;height:38px;border-radius:50%}.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid rgba(255,255,255,.1);margin-top:30px;padding-top:28px}.footer-cols h4{color:#fff}.footer-cols a{color:rgba(255,255,255,.7);text-decoration:none}.footer-bottom,.footer-legal{font-size:11px;color:rgba(255,255,255,.38);margin-top:30px}.footer-legal a{color:rgba(255,255,255,.48)}

@media(max-width:900px){
  .b-nav-list{gap:20px!important}.b-power-grid,.b-service-grid,.b-journal-grid,.biz-grid{grid-template-columns:repeat(2,1fr)!important}
  .b-footer-entity{grid-template-columns:repeat(2,1fr)!important}.p-carousel{min-height:540px}.event-card{grid-template-columns:120px 1fr!important}
}
@media(max-width:680px){
  .b-nav{height:64px!important}.b-nav-inner{padding:0 16px!important}.b-nav-list{
    position:absolute!important;top:64px!important;left:12px!important;right:12px!important;
    display:none!important;flex-direction:column!important;gap:0!important;padding:8px!important;
    background:rgba(247,245,239,.97)!important;border:1px solid var(--x-line)!important;border-radius:18px!important;
    box-shadow:0 18px 45px rgba(25,35,28,.12)!important
  }
  .b-nav.is-open .b-nav-list{display:flex!important}.b-nav-list li{width:100%}.b-nav-list a{display:block!important;padding:12px 14px!important;border-radius:12px}.b-nav-list a:hover{background:rgba(23,60,44,.06)}.b-nav-list a.active:after{left:auto!important;right:14px!important;bottom:50%!important;transform:translateY(50%)!important;width:5px!important;height:5px!important;border-radius:50%}
  .x-menu{display:flex}.b-nav-icon{width:38px!important;height:38px!important}
  .b-hero{min-height:58vh!important;padding:100px 18px 55px!important}.b-hero-content{padding:0!important}.b-hero-title{font-size:47px!important}.b-hero-sub{font-size:14px!important}
  .b-section,.section{padding:82px 18px!important}.b-section-title,.section-title{font-size:36px!important}
  .b-power-grid,.b-service-grid,.b-journal-grid,.biz-grid{grid-template-columns:1fr!important}.b-power-grid{margin-top:38px!important}
  .b-service-card{min-height:auto}.b-footer{padding:55px 18px 28px!important}.b-footer-entity{grid-template-columns:1fr 1fr!important}.b-footer-links{gap:18px}
  .p-section{padding:82px 18px!important}.p-carousel{min-height:600px;margin-top:35px}.p-card{width:100%!important}.p-card-img{min-height:300px}.p-controls{margin-top:22px!important}
  .event-card{grid-template-columns:1fr!important;padding:18px!important}.event-date{min-height:110px;flex-direction:row;gap:14px}.event-day{font-size:46px}.event-month{margin-top:0}.event-body h3{font-size:25px}
  .page-hero-content{min-height:58vh!important;padding:100px 18px 55px!important}.page-hero-content h1{font-size:47px!important}.footer-cols{grid-template-columns:1fr!important}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* ===== xixihall.com 域名统一版 · 首页 coverflow 修复 =====
   1) 上面的 .b-hero 曾有 display:flex!important，覆盖了 index.html 内嵌
      <style> 里设计好的 grid 双栏，导致 .coverflow 被 flex 压成 100~154px 宽，
      3D 卡片横向溢出、反过来压住标题。已移除该 display 声明。
   2) .coverflow 是绝对定位卡片的容器，必须裁剪；否则 9 张卡横铺会盖住首屏。 */
.coverflow { position: relative; min-width: 0; overflow: hidden; }


/* ===== 居中副标题修复 =====
   .b-section-sub 有 max-width:720px。容器宽于 720px 时（>=1024px 桌面）
   元素盒子贴左，text-align:center 只居中文字不居中盒子，整块视觉左偏。
   实测 1440px 偏 238px、1024px 偏 102px；<=768px 容器不足 720px 故不显形。
   对内联声明了 text-align:center 的那些加水平 auto 边距；左对齐的保持原样。 */
.b-section-sub[style*="text-align: center"]{margin-left:auto!important;margin-right:auto!important}

/* index.html:312 原定 .b-experience .b-section-sub{margin:18px auto 30px}，被上面的
   .b-section-sub{margin:18px 0 0 !important} 压掉；这里恢复其水平居中。 */
.b-experience .b-section-sub{margin-left:auto!important;margin-right:auto!important}

/* ===== events 卡片配图 =====
   卡片去掉左侧 .event-date 块后改为「左图右文」。
   site-unified.css:120 的 .event-card 用 !important 压成 150px 1fr，
   不复位的话 .event-body 会掉进窄列被压成一条。桌面端给 300px 图版，
   <=900px 回单列上图下文（图在正文上方）。
   图片用 width:100%;height:auto 走自然比例，不用 aspect-ratio，
   避开老版本微信 webview 不支持的风险。 */
.event-card{grid-template-columns:300px 1fr!important}
@media (max-width:900px){.event-card{grid-template-columns:1fr!important}}
.event-media{margin:0;min-width:0}
.event-media img{display:block;width:100%;height:auto;
                 border-radius:var(--r-sm);background:var(--c-cream)}
.event-media figcaption{margin-top:8px;font-size:0.6875rem;line-height:1.6;
                        color:var(--c-ink-3);text-align:center;letter-spacing:.02em}
@media (max-width:900px){.event-media{margin-bottom:4px}}

/* ===== events 商务茶叙卡片配图 =====
   原来三张卡用的是 .img-placeholder 占位文字，替换为实景图。
   圆角沿用占位块的 16px（site-unified.css:130 的 .img-placeholder），
   间距沿用 page-events.css:96 的 margin-bottom:16px。
   图注与上方茶文化活动三张卡用同一套规格，保证全页一致。 */
.biz-media{margin:0 0 16px;min-width:0}
.biz-media img{display:block;width:100%;height:auto;
               border-radius:16px;background:var(--c-cream)}
.biz-media figcaption{margin-top:8px;font-size:0.6875rem;line-height:1.6;
                      color:var(--c-ink-3);text-align:center;letter-spacing:.02em}

/* ===== events 报名/咨询区块：标题 + 副标 + 客服二维码 =====
   两个改动：
   1) 副标题居中：base.css:94 给 .section-lede 加了 max-width:640px 但没配
      margin: 0 auto，父容器的 text-align:center 只能让段内文字居中，
      不能让一个定宽块居中，导致 p 缩成 640px 后整块贴左，文字在 p 内
      居中就显得偏。pages.css:111/188 那两条用 margin: 0 auto 救过同类
      问题。这里只在 events 区块局部加 auto 边距。
   2) 加客服二维码：images/qr-service.jpg 解出 u.wechat.com/ML1PV_o38T3q8sC2fKQANuM
      （WeChat「联系我」短链，是企业微信 / 客服加好友入口）。
      按全站一致原则，QR 仅展示，不加外链（同 journal.html 的处理）。
      同时移除原 is-title-only 类（区块不再是只剩标题），把压紧的
      上下留白搬到这条规则里，行为不变。 */
.section-cta-qr{padding:88px 0 72px}
.section-cta-qr .section-lede{margin:0 auto}
.cta-qr{margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:14px}
.cta-qr-item{margin:0;background:#fff;padding:18px;border-radius:12px;
              box-shadow:0 8px 24px rgba(0,0,0,.18);display:inline-block}
.cta-qr-item img{display:block;width:200px;height:200px;image-rendering:pixelated}
.cta-qr-item figcaption{margin-top:12px;font-size:13px;color:#555;
                         text-align:center;letter-spacing:.02em}
.cta-qr-hint{margin:0;color:rgba(255,255,255,.78);font-size:14px;letter-spacing:.02em}
@media (max-width:600px){
  .cta-qr-item img{width:180px;height:180px}
  .section-cta-qr{padding:64px 0 56px}
}