/*
Theme Name: JinShang 2025
Theme URI: https://jinshangworld.com/
Author: JinShang IT
Description: 金尚官网定制轻量区块主题（脱离 Elementor）。全局页头/页脚模板、原生区块、内建 SEO/GEO、双语友好。1:1 复刻原站视觉。
Version: 0.6.2
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 7.2
License: GNU General Public License v2 or later
Text Domain: jinshang2025
*/

/* 仅放少量无法通过 theme.json 表达的补充样式；主视觉由 theme.json 驱动 */

:root {
  --js-black: #000000;
  --js-ink: #111111;
  --js-line: rgba(255,255,255,.14);
  --js-accent: #c3002e; /* 悬停/强调红 = 原站精确值 rgb(195,0,46) */
}

/* 页脚社媒圆形图标 */
.js-social { display: flex; align-items: center; gap: 14px; margin-top: 16px; }

/* 页脚三列顶部对齐同一水平线 */
.js-footer .wp-block-heading { margin-top: 0; }
/* 预约参观列:收紧到内容宽度 + 居中,置于三码正上方 */
.js-footer .js-qr-col { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
/* 联系列:收紧,把多余宽度让给门店列 */
.js-footer .js-contact-col { flex: 0 1 300px; }
/* 门店列:占据剩余全部宽度;门店名允许在 · 处换行,不再重叠 */
.js-footer .js-stores { flex: 1 1 auto; }
.js-footer .js-stores h2 { overflow-wrap: break-word; }

/* 页脚二维码组(公众号/视频号/小红书) */
.js-qr-row { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.js-qr { display: flex; flex-direction: column; align-items: center; gap: 9px; }
.js-qr .lab { display: flex; align-items: center; gap: 6px; color: #fff; font-size: 14px; letter-spacing: .5px; white-space: nowrap; }
.js-qr .lab img { height: 20px; width: auto; display: block; }
.js-qr .lab svg { width: 20px; height: 20px; display: block; flex: none; }
.js-qr img.qr { width: 104px; height: 104px; border-radius: 8px; background: #fff; display: block; }
.js-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: 50%;
  color: #fff; text-decoration: none; font-size: 18px;
  transition: transform .2s ease, opacity .2s ease;
}
.js-social a:hover { transform: translateY(-2px); opacity: .85; }
.js-social a svg { width: 20px; height: 20px; fill: currentColor; display: block; }
.js-social .weibo     { background:#e6162d; }
.js-social .instagram { background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%); }
.js-social .youtube   { background:#ff0000; }

/* 页脚门店标题的分隔点用 Georgia，还原原站 */
.js-store-sep { font-family: Georgia, "Times New Roman", serif; }

/* 全站正文字体：对齐原站 = Georgia（拉丁）+ 中文衬线回退 */
body {
  font-family: Georgia, "Songti SC", "SimSun", "宋体", serif;
}
/* 标题：幼圆（跨平台圆体回退） */
h1, h2, h3, .wp-block-heading {
  font-family: "YouYuan", "幼圆", "Yuanti SC", "圆体-简", "Microsoft YaHei", sans-serif;
}

/* ===== news/press 顶部切换带（复刻原站 news feed | press）===== */
.js-np-toggle { text-align:center; margin:40px auto 0; padding:14px 5vw 22px; max-width:1180px;
  border-bottom:1px solid #111; font-family:Georgia,"Times New Roman","Songti SC",serif;
  font-style:italic; font-size:clamp(24px,3.4vw,34px); line-height:1.2; }
.js-np-toggle a { color:#111; text-decoration:none; padding:0 24px; transition:opacity .2s ease; }
.js-np-toggle a:hover { opacity:.55; }
.js-np-toggle .js-np-sep { color:#111; font-style:normal; font-weight:300; }

/* ===== 门店联系区（地图 + 深色联系框，手机堆叠；复刻原站图片版）===== */
.js-contact { display:grid; grid-template-columns:1.15fr 1fr; max-width:1120px; margin:34px auto; align-items:stretch; }
.js-contact-map { overflow:hidden; }
.js-contact-map img { width:100%; height:100%; min-height:280px; object-fit:cover; display:block; }
.js-contact-box { background:#333; color:#e6e6e6; padding:46px 42px; }
.js-contact-box h3 { color:#fff; font-family:Georgia,"Times New Roman",serif; font-style:italic; font-size:26px; margin:0 0 22px; }
.js-contact-box p { margin:2px 0; font-size:15px; line-height:1.7; }
.js-contact-box a { color:#e6e6e6; text-decoration:none; transition:color .25s ease; }
.js-contact-box a:hover { color:#fff; text-decoration:underline; }
.js-contact-box .js-contact-addr { margin-top:26px; }
.js-contact-mins { display:flex; gap:34px; margin-top:32px; }
.js-contact-mins .n { font-size:36px; font-weight:700; color:#fff; line-height:1; margin-right:8px; }
.js-contact-mins small { font-size:13px; color:#b5b5b5; }
@media (max-width:768px){ .js-contact{ grid-template-columns:1fr; } .js-contact-box{ padding:32px 26px; } }

/* ===== 门店服务/空间图标网格（原生，手机可读；复刻原站）===== */
.js-amenities { max-width:1160px; margin:34px auto; padding:0 5vw; display:flex; gap:34px; align-items:flex-start; }
.js-amenities-title { flex:0 0 120px; font-size:36px; color:#222; margin:0; line-height:1.1;
  font-family:"YouYuan","幼圆","Yuanti SC","圆体-简","Microsoft YaHei",sans-serif; }
.js-amenities-grid { flex:1; display:grid; grid-template-columns:repeat(4,1fr); gap:32px 14px; }
.js-amenity { display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px; }
.js-amenity svg { width:38px; height:38px; stroke:#333; fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.js-amenity span { font-size:14px; color:#4a4a4a; line-height:1.35; }
@media (max-width:768px){ .js-amenities{ flex-direction:column; gap:14px; } .js-amenities-title{ font-size:30px; } .js-amenities-grid{ grid-template-columns:repeat(3,1fr);} }
@media (max-width:460px){ .js-amenities-grid{ grid-template-columns:repeat(2,1fr);} }

/* ===== 门店会议室价目表（原生网格，复刻原站图片版，手机可读）===== */
.js-rooms { max-width:1200px; margin:18px auto 30px; padding:0 5vw; }
.js-rooms-head { text-align:center; letter-spacing:.24em; color:#6a6a6a; font-size:15px; font-weight:400;
  margin:34px 0 26px; padding-bottom:12px; border-bottom:1px solid #e6e6e6;
  font-family:Georgia,"Times New Roman",serif; text-transform:uppercase; }
.js-rooms-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:28px 16px; }
.js-room { text-align:center; }
.js-room-no { font-family:Georgia,"Times New Roman",serif; font-style:italic; font-weight:700; font-size:18px; color:#111; }
.js-room-sub { font-size:11px; color:#888; font-style:italic; }
.js-room-name { font-size:14px; color:#333; margin:3px 0 14px; }
.js-room-cap, .js-room-price { font-size:13px; font-weight:700; color:#222; line-height:1.7; }
@media (max-width:560px){ .js-rooms-grid{ grid-template-columns:repeat(2,1fr); gap:26px 10px;} }

/* ===== 首页服务卡（图上 + 内容框 + hover 灰底红标题，复刻原站 CTA classic 皮肤）===== */
.js-svc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; max-width:1440px; margin:14px auto 26px; padding:0 5vw; }
.js-svc-card { display:flex; flex-direction:column; background:#fff; text-decoration:none; }
.js-svc-img { aspect-ratio:4/3; overflow:hidden; }
.js-svc-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.js-svc-body { padding:24px 20px 32px; text-align:center; background:#fff; transition:background .4s ease;
  display:flex; flex-direction:column; flex:1 1 auto; }
.js-svc-title { font-family:"YouYuan","幼圆","Yuanti SC","圆体-简","Microsoft YaHei",sans-serif;
  font-size:21px; font-weight:700; margin:0 0 14px; color:#141414; transition:color .4s ease; }
.js-svc-desc { font-size:14px; line-height:1.9; color:#5a5a5a; margin:0 0 22px; }
/* 按钮底部对齐：无论描述几行，4 张卡的按钮都落在同一条线 */
.js-svc-btn { display:inline-block; padding:9px 28px; border:1px solid #141414; color:#141414;
  text-decoration:none; font-size:14px; letter-spacing:.02em; transition:background .3s ease, color .3s ease;
  margin-top:auto; align-self:center; }
/* hover：内容框转灰、标题转红（--js-accent）、配图轻微放大 */
.js-svc-card:hover .js-svc-body { background:#ededed; }
.js-svc-card:hover .js-svc-title { color:var(--js-accent); }
.js-svc-card:hover .js-svc-img img { transform:scale(1.05); }
.js-svc-btn:hover { background:#141414; color:#fff; }
/* 窄屏用 !important 盖过页面里的内联 grid-template-columns（首页项目卡/homeeng/event 等）*/
@media (max-width:900px){ .js-svc-grid{ grid-template-columns:repeat(2,1fr) !important;} }
@media (max-width:560px){ .js-svc-grid{ grid-template-columns:1fr !important;} }

/* 项目按钮：outline 描边，hover → 红底白字（复刻原站）；范围限首页项目区避免误伤 */
.js-projects .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link { transition:background .3s ease, color .3s ease, border-color .3s ease; }
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background:var(--js-accent) !important; color:#fff !important; border-color:var(--js-accent) !important;
}
/* 普通 CTA 按钮（非 outline：待租面积 / Learn more about us / Check availability 等）之前无 hover 反馈，补齐 → 红底白字（与全站 hover 语言一致）*/
.wp-block-button:not(.is-style-outline) .wp-block-button__link {
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover {
  background:var(--js-accent) !important; color:#fff !important; border-color:var(--js-accent) !important;
}

/* ===== 门店页价格块（原生文字，复刻原站图片版的排版）===== */
.js-price { max-width: 1040px; margin: 46px auto 8px; padding: 0 5vw; }
.js-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 56px; }
.js-price-cell { min-width: 0; }
.js-price-label {
  font-size: 13px; color: #3a3a3a; letter-spacing: .03em; margin: 0 0 8px;
  display: inline-block; border-bottom: 1px solid #c7c7c7; padding-bottom: 6px;
  font-family: Georgia, "Songti SC", serif;
}
.js-price-val { display: flex; align-items: baseline; gap: 8px; margin: 0; flex-wrap: wrap; }
.js-price-num { font-size: 48px; font-weight: 400; line-height: 1; color: #1a1a1a; letter-spacing: -.01em; }
.js-price-cur { font-size: 15px; color: #444; }
.js-price-unit { font-size: 14px; color: #6a6a6a; }
/* 底部规格行：承重 / 净高 / 使用率，居中，竖线分隔 */
.js-specs {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 0 30px; max-width: 1040px; margin: 26px auto 46px; padding: 22px 5vw 0;
  border-top: 1px solid #ececec; font-size: 17px; color: #2a2a2a;
}
.js-specs span { position: relative; padding: 0 30px; }
.js-specs span + span::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 1px; height: 20px; background: #d0d0d0;
}
@media (max-width: 640px){
  .js-price-grid { grid-template-columns: 1fr; gap: 26px; }
  .js-price-num { font-size: 40px; }
  .js-specs { flex-direction: column; gap: 10px; }
  .js-specs span + span::before { display: none; }
}

/* 首页 hero 淡入淡出轮播（手写，复刻原站 fade 自动轮播） */
/* 全宽出血：无论父容器多宽，都铺满整个视口宽度，左右不留白 */
.js-hero {
  position:relative; height:88vh; min-height:520px; overflow:hidden; background:#000;
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.js-hero .js-slide {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity .6s ease-in-out; will-change:opacity;
}
.js-hero .js-slide.is-active { opacity:1; }
/* 内页横幅轮播变体（如办公页「在这里相聚」）：比首页 hero 矮，标题居中叠字 */
.js-hero.js-band { height:440px; min-height:0; }
.js-hero.js-band .js-band-dim { position:absolute; inset:0; background:rgba(0,0,0,.30); z-index:1; }
.js-hero.js-band .js-band-title { position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:40px; font-weight:400; letter-spacing:.04em; text-shadow:0 2px 14px rgba(0,0,0,.35); }
@media (max-width:600px){ .js-hero.js-band{ height:300px; } .js-hero.js-band .js-band-title{ font-size:28px; } }

/* logo 进场动画（复刻原站生活方式页 fadeInLeft/Down/Right，滚动到可视区触发；JS 加类，失败则默认可见不隐藏）*/
.js-logofx { opacity:0; will-change:opacity,transform; }
.js-logofx.in { animation:.7s ease both; }
.js-logofx-l.in { animation-name:jsFxLeft; }
.js-logofx-d.in { animation-name:jsFxDown; }
.js-logofx-r.in { animation-name:jsFxRight; }
@keyframes jsFxLeft { from{opacity:0;transform:translateX(-45px)} to{opacity:1;transform:none} }
@keyframes jsFxDown { from{opacity:0;transform:translateY(-45px)} to{opacity:1;transform:none} }
@keyframes jsFxRight{ from{opacity:0;transform:translateX(45px)} to{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce){ .js-logofx{opacity:1!important;} .js-logofx.in{animation:none!important;} }

/* 页脚整体：黑底浅字，对齐原站 */
.js-footer { background: var(--js-black); color: #cfcfcf; }
.js-footer h2, .js-footer h3, .js-footer a { color: #ffffff; }
.js-footer a:hover { opacity: .8; }
.js-footer .js-copyright { color: #8a8a8a; font-size: 13px; }
/* 页脚门店名单行不换行（英文名如 JinShang·Mutianyu 较长）；略缩字号保证窄栏放得下 */
.js-footer h2 { white-space: nowrap; font-size: 16px; letter-spacing: 0; }
/* 页脚栏目标题（预约参观 / Book A Tour / 联系我们 / Leasing Inquiry）窄屏不折行 */
.js-footer h3 { white-space: nowrap; }

/* 去掉页头与主体之间 WP 默认的 24px 间距（那条白缝），让 hero 直接贴住黑色页头 */
.wp-site-blocks > main,
.wp-site-blocks > main:first-child {
  margin-block-start: 0 !important;
}
/* 页头与紧随其后的主体之间也不留缝 */
.js-header { margin-block-end: 0 !important; }

/* 页头：白底黑字（对齐原站） */
.js-header { background: #ffffff; border-bottom: 1px solid #eee; }
.js-header a { color:#111; text-decoration:none; }
.js-header a:hover { opacity:.6; }
/* 语言切换器：Polylang 输出裸 li.lang-item（无 ul 包裹） */
.js-header-right ul, .js-header-right .pll-switcher { list-style:none !important; margin:0; padding:0; display:flex; gap:16px; align-items:center; }
.js-header-right li.lang-item {
  list-style:none !important; display:inline-flex; align-items:center; margin:0; padding:0;
}
.js-header-right li.lang-item::marker { content:none; }
.js-header-right li.lang-item + li.lang-item { margin-left:14px; }
.js-header-right li.lang-item a { font-size:14px; letter-spacing:1px; font-weight:500; color:#111; text-decoration:none; }
.js-header-right li.lang-item a:hover { color:#a67c00; }
.js-header-right li.current-lang a { color:#a67c00; }
/* 单按钮语言切换（复刻原站：白底黑字，hover 红底白字）*/
.js-lang-single a { font-size:14px; letter-spacing:.5px; font-weight:500; color:#111; text-decoration:none;
  font-family:Georgia,"Times New Roman",serif; padding:8px 20px; display:inline-block;
  border:1px solid transparent; transition:background .25s ease, color .25s ease; }
.js-lang-single a:hover { background:var(--js-accent); color:#fff; }
/* 汉堡图标 + 展开菜单：图标黑色，菜单项黑字 */
.js-header .wp-block-navigation__responsive-container-open,
.js-header .wp-block-navigation__responsive-container-close { color:#111; }
.js-header .wp-block-navigation { --wp--preset--color--white:#111; }
/* logo 高度约束 */
.js-header .wp-block-site-logo img { max-height:44px; width:auto; }

/* ============ 菜单：桌面=悬停浮层下拉 / 手机=点击同款浮层（阿里云式，带阴影不撑页面，小字）；JS 控制开合(.js-menu-open)含关闭延迟 ============ */
@keyframes jsDropIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }

/* 菜单图标始终黑色可见；nav 相对定位供浮层锚定 */
.js-header .wp-block-navigation__responsive-container-open { color: #111 !important; }
.js-header .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
.js-nav { position: relative; }

/* 浮层容器外观（始终应用；WP 的 hidden-by-default{display:none} 令其默认隐藏，触发类翻成 block） */
.js-nav .wp-block-navigation__responsive-container {
  position: absolute !important; inset: auto !important;
  top: 100% !important; right: 0 !important; left: auto !important;
  width: max-content !important; min-width: 210px; max-width: 280px; height: auto !important;
  background: #fff !important; box-shadow: 0 12px 34px rgba(0,0,0,.15), 0 2px 8px rgba(0,0,0,.06) !important;
  border: 1px solid rgba(0,0,0,.06) !important; border-radius: 12px !important;
  padding: 10px 0 !important; margin-top: 12px; overflow: visible !important; z-index: 1000;
}
/* WP core 有 .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important}(0,3,0)
   把非 is-menu-open 态背景强制成透明；我们用自管的 .js-menu-open 开合(容器保留 hidden-by-default)，故用 0,4,0 选择器夺回白底 */
.js-nav.wp-block-navigation .wp-block-navigation__responsive-container.hidden-by-default { background-color: #fff !important; }
/* 透明桥：填补图标↔浮层的间隙，配合 JS 关闭延迟，防快速划动/短暂划出即消失 */
.js-nav .wp-block-navigation__responsive-container::before {
  content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 20px;
}
/* 触发显示：JS 的 .js-menu-open（桌面悬停意图/手机点击）+ WP is-menu-open 兜底 + 桌面 :hover 无JS兜底 */
.js-nav.js-menu-open .wp-block-navigation__responsive-container,
.js-nav .wp-block-navigation__responsive-container.is-menu-open { display: block !important; animation: jsDropIn .18s ease; }
@media (min-width:782px){ .js-nav:hover .wp-block-navigation__responsive-container { display: block !important; animation: jsDropIn .18s ease; } }

/* 只隐藏关闭 X；保留结构层（否则整菜单被藏） */
.js-nav .wp-block-navigation__responsive-container-close { display: none !important; }
.js-nav .wp-block-navigation__responsive-close,
.js-nav .wp-block-navigation__responsive-dialog {
  display: block !important; position: static !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;
}
.js-nav .wp-block-navigation__responsive-container-content {
  display: block !important; width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important;
}
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__container {
  flex-direction: column !important; align-items: stretch !important; gap: 0 !important; padding: 0 !important; margin: 0 !important;
}
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-item { display: block; width: 100%; }
/* 菜单项：干净无衬线小字(15px) 左对齐，hover 浅灰底红字 */
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-item > a,
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu > a,
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle {
  font-family: inherit !important; font-style: normal !important;
  font-size: 15px !important; font-weight: 400 !important; line-height: 1.4 !important;
  color: #222 !important; letter-spacing: 0 !important; white-space: nowrap;
  display: flex; align-items: center; text-align: left; width: 100%; box-sizing: border-box;
  padding: 11px 22px !important; background: transparent !important;
  transition: background .15s ease, color .15s ease;
}
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-item > a:hover,
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle:hover {
  background: #f3f3f3 !important; color: var(--js-accent) !important;
}
/* 子菜单父项(li)：块级，箭头绝对定位不占流（避免撑高/塌高） */
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu { position: relative; display: block; }
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__submenu-icon { position: absolute; right: 16px; top: 17px; width: 11px; height: 11px; margin: 0; fill: #999; pointer-events: none; }
/* 子菜单：默认隐藏；点击父项(aria-expanded，桌面手机通用) 或 桌面悬停 → 就地展开，缩进小字 */
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
  display: none !important; position: static !important; box-shadow: none !important; border: 0 !important;
  background: transparent !important; min-width: 0 !important; width: 100% !important; padding: 0 !important; opacity: 1; visibility: visible;
}
/* 展开只认 aria-expanded（由 JS 控制:悬停/点击即展开并【保持】,不用 :hover 触发→避免移开即收起使面板忽长忽短 */
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
  display: block !important; height: auto !important; overflow: visible !important;
}
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
  font-size: 14px !important; color: #777 !important; padding: 8px 22px 8px 36px !important;
  width: 100% !important; box-sizing: border-box !important; white-space: normal !important;
}
.js-nav .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-item > a:hover {
  color: var(--js-accent) !important; background: #f3f3f3 !important;
}
@media (prefers-reduced-motion: reduce) {
  .js-nav .wp-block-navigation__responsive-container { animation: none !important; }
}

/* ---------- 自动播放轮播（复刻原站 Elementor image-carousel：1图/屏、自动播放、左右箭头+圆点、无限循环、悬停暂停） ---------- */
.js-carousel { position: relative; width: 100%; margin: 0 auto; overflow: hidden; background: #000; }
.js-carousel-viewport { overflow: hidden; }
.js-carousel-track { display: flex; will-change: transform; transition: transform var(--cspeed, 1500ms) ease; }
.js-cslide { flex: 0 0 100%; min-width: 100%; margin: 0; }
.js-cslide img { display: block; width: 100%; height: clamp(280px, 44vw, 600px); object-fit: cover; }
.js-carousel .js-cprev, .js-carousel .js-cnext {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  border: 0; background: rgba(0,0,0,.32); color: #fff; width: 46px; height: 60px;
  font-size: 28px; line-height: 1; cursor: pointer; transition: background .2s; -webkit-appearance: none;
}
.js-carousel .js-cprev:hover, .js-carousel .js-cnext:hover { background: rgba(0,0,0,.6); }
.js-carousel .js-cprev { left: 0; } .js-carousel .js-cnext { right: 0; }
.js-cdots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 9px; z-index: 3; }
.js-cdots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.5); cursor: pointer; transition: background .2s; }
.js-cdots button.is-active { background: #fff; }
@media (max-width: 600px) { .js-carousel .js-cprev, .js-carousel .js-cnext { width: 38px; height: 48px; font-size: 22px; } }
@media (prefers-reduced-motion: reduce) { .js-carousel-track { transition: none !important; } }

/* 活动页分区:全宽轮播 + 标题叠加在图上(白色斜体居中,复刻原站) */
.js-cwrap { position: relative; }
.js-cwrap .js-carousel { width: 100%; }
.js-cwrap .js-cslide img { height: clamp(340px, 46vw, 680px); }
.js-cwrap.js-band-h .js-cslide img { height: clamp(200px, 27vw, 400px); }
.js-cwrap .js-cwrap-cap {
  position: absolute; inset: 0; z-index: 4; margin: 0;
  display: flex; align-items: center; justify-content: center; text-align: center;
  color: #fff !important; font-style: italic; font-weight: 400;
  font-size: clamp(30px, 4.2vw, 52px); letter-spacing: .02em;
  pointer-events: none; text-shadow: 0 2px 16px rgba(0,0,0,.45);
  font-family: Georgia, "Songti SC", "\5b8b\4f53", serif;
}
.js-cwrap .js-cwrap-cap.has-text-color { color: #fff !important; }

/* 图文卡片网格(原生区块版:图共享+文字按语言覆盖,复刻 .js-svc-card 外观).用于活动6房间条/首页服务·项目卡 */
.js-cards.wp-block-columns { max-width: 1440px; margin: 14px auto 26px; padding: 0 5vw; gap: 22px; }
.js-cards .wp-block-column { display: flex; flex-direction: column; background: #fff; position: relative; }
.js-cards .wp-block-image { aspect-ratio: 4/3; overflow: hidden; margin: 0; }
.js-cards .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.js-cards .wp-block-column:hover .wp-block-image img { transform: scale(1.05); }
.js-cards .js-cardbody { padding: 22px 18px 26px; text-align: center; background: #fff; transition: background .4s ease; flex: 1; display: flex; flex-direction: column; }
.js-cards .wp-block-column:hover .js-cardbody { background: #ededed; }
.js-cards h3 { font-family: "YouYuan","幼圆","Yuanti SC","Microsoft YaHei",sans-serif; font-weight: 700; font-size: 21px; margin: 16px 0 8px; padding: 0 8px; transition: color .3s ease; }
.js-cards .js-cardbody h3 { margin-top: 0; }
.js-cards .wp-block-column:hover h3 { color: var(--js-accent); }
.js-cards .js-carddesc { font-size: 14px; line-height: 1.9; color: #5a5a5a; margin: 0 0 20px; }
.js-cards .js-cardbody .wp-block-buttons { margin-top: auto; justify-content: center; }
.js-cards .wp-block-button__link { border: 1px solid #141414; color: #141414; background: transparent; border-radius: 0; padding: 9px 26px; font-size: 14px; }
.js-cards .wp-block-button:not(.js-cardlink) .wp-block-button__link:hover { background: #141414 !important; color: #fff !important; border-color: #141414 !important; }
/* 项目卡:整卡可点(透明满卡链接层) */
.js-cards .wp-block-buttons.js-cardlink { position: absolute; inset: 0; margin: 0; z-index: 3; }
.js-cards .js-cardlink .wp-block-button, .js-cards .js-cardlink .wp-block-button__link { position: absolute; inset: 0; margin: 0; padding: 0; border: 0; opacity: 0; font-size: 0; background: transparent; }
@media (max-width: 781px) { .js-cards.wp-block-columns { gap: 16px; } }

/* 场地一览表(活动页,可见化场地容量数据) */
.js-venues { max-width: 900px; margin: 40px auto; padding: 0 20px; overflow-x: auto; }
.js-venues table { width: 100%; border-collapse: collapse; font-size: 15px; }
.js-venues th { background: #141414; color: #fff; font-weight: 700; padding: 10px 14px; text-align: left; }
.js-venues td { padding: 10px 14px; border-bottom: 1px solid #e5e5e5; color: #333; }
.js-venues tr:hover td { background: #f7f5f1; }

/* 常见问题(GEO FAQ:可见问答 + FAQPage 结构化数据) */
.js-faq { max-width: 840px; margin: 48px auto; padding: 0 20px; }
.js-faq > h2 { margin-bottom: 24px; }
.js-faq-item { margin: 0 0 22px; }
.js-faq-item h3 { font-size: 18px; font-weight: 700; margin: 0 0 6px; color: #141414; text-align: left; }
.js-faq-item p { font-size: 15px; line-height: 1.9; color: #444; margin: 0; text-align: left; }
