/*
Theme Name: DIFGC
Version: 0.1.0
Description: DIFGC 2026 会议专题站主题（由 eventpro 镜像移植，ADR 0005 设计稿导入管道）
Text Domain: difgc
*/

@font-face {
  font-family: 'Nunito Sans';
  src: url('fonts/nunitosans-400.woff2') format('woff2');
  font-weight: 200 1000; font-style: normal; font-display: swap;
}

:root {
  --blue: #011c40;
  --blue-2: #0a2a52;
  --yellow: #00A8FF; /* Bright Blue */
  --magenta: #d62672;
  --orange: #f7902d;
  --gray: #f1f1f1;
  --ink: #373935;
  --r: 10px;
  --pill: 999px;
}

body { font-family: 'Nunito Sans', -apple-system, 'Segoe UI', Roboto, 'PingFang SC', 'Microsoft YaHei', sans-serif; font-size: 16px; line-height: 1.6; color: var(--ink); }
h1,h2,h3,h4 { color: var(--blue); font-weight: 800; line-height: 1.2; }
h2 { font-size: clamp(28px, 3.4vw, 42px); }
img { max-width: 100%; }

/* ============ 按钮：胶囊形（对齐参考站）============ */
/* 票92/01 A1：亮蓝（--yellow=#00A8FF）底上的按钮文字 #fff→navy（#011c40 on #00A8FF
   = 6.48:1 达 AA，白字仅 2.61:1）；hover 底 #0092E0 上 navy = 4.99:1 仍达标。 */
.wp-block-buttons .wp-block-button__link,
.btn-pill {
  display: inline-block; border-radius: var(--pill) !important; text-transform: none !important;
  font-weight: 800; font-size: 15px; letter-spacing: .2px; padding: 12px 30px !important;
  background: var(--yellow); color: var(--blue); text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.wp-block-buttons .wp-block-button__link:hover, .btn-pill:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(1,28,64,.25); background: #0092E0; }
.btn-navy { background: var(--blue); color: #fff !important; }
/* 票92/01 A1r2：outline 按钮全站仅 beijing2026 使用（live 核实），落在浅底带上——
   文字 var(--yellow)=亮蓝 2.61:1 改 navy；描边保留品牌亮蓝（非文字对比不在本票验收）。 */
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid var(--yellow); color: var(--blue); }

/* ============ 双行深蓝页头 ============ */
.site-top { background: var(--blue); color: #fff; }
.topbar { max-width: 1380px; margin: 0 auto; padding: 16px 32px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.tb-left { display: flex; flex-direction: column; line-height: 1.5; gap: 2px; justify-content: center; }
.tb-left strong { font-size: 15px; font-weight: 800; color: #fff; }
.tb-left span { font-size: 13.5px; color: var(--yellow); font-weight: 700; }

.tb-logo { height: 62px; width: auto; }
.tb-right { text-align: right; }
.mainnav { background: rgba(255,255,255,.045); border-top: 1px solid rgba(255,255,255,.12); }
.nav-inner { max-width: 1380px; margin: 0 auto; padding: 0 32px; display: flex; align-items: center; gap: 14px; flex-wrap: nowrap; }
@media (max-width: 1560px) and (min-width: 1281px) { .nav-inner > a, .nav-drop > a { font-size: 15.5px; padding: 28px 10px; } }
.nav-inner > a, .nav-drop > a { color: #fff !important; text-decoration: none !important; font-weight: 800; font-size: 17px; padding: 32px 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; transition: color .18s ease; flex: 1 1 auto; }
.nav-inner > a:hover, .nav-drop > a:hover { color: var(--yellow) !important; }
.nav-inner > a:hover { color: var(--yellow); }
.nav-inner .arr { font-size: 12px; opacity: .85; transform: translateY(1px); }
/* ---- issue 64：主导航汉堡折叠带上限提到 1024 ----
   本站 WP 7.1.3 的核心浮层断点是 600px（open 按钮/横排容器在 min-width:600px 切换），
   盖不住 600–1024：导航行宽 960–972px，820 视口 scrollW=972、≤768 视口 960
   （issue 63 基线 dev-baseline-run1.log）。此段在 .mainnav 作用域内把该导航的
   600–1024 带宽覆写成核心 <600 的行为（汉堡 + 浮层，浮层视觉映射见
   assets/css/nav-native.css 浮层态段）；>1024 桌面横排零变化。 */
@media (min-width: 600px) and (max-width: 1024px) {
	.mainnav nav.wp-block-navigation.nav-inner .wp-block-navigation__responsive-container-open { display: flex; }
	.mainnav nav.wp-block-navigation.nav-inner .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
}
@media (max-width: 1080px) { .wm-sub-en { display: none; } }

/* ============ Hero：照片轮播 + 毛玻璃卡 ============ */
.hero { position: relative; height: 100vh; min-height: 560px; overflow: hidden; background: var(--blue); }
.hero, .hero .slide img, .hero .slide video { border-radius: 0; }
.hero .slide video { width: 100%; height: 100%; object-fit: cover; display: block; }
/* issue 64 bandaid 复核（2026-10-10）：overflow-x:hidden 是压掉横向溢出滚动条的
   bandaid。导航溢出源（960–972px）已由 issue 64 汉堡化根治；issue 63 基线中剩余
   溢出只有 1024 视口的第二源（scrollW=1070/1130，issue 67 另案）。摘除会让 1024
   视口在票 67 修复前露出横向滚动条，故保守保留、待票 67 落地后随其绿回路数据定去留。 */
html, body { overflow-x: hidden; }
/* 二级页面内容全宽自适应（消除两侧大留白；首页通铺区块有 max-width:none!important 不受影响）*/
main .wp-block-post-content > * { max-width: min(1360px, 96vw) !important; margin-left: auto; margin-right: auto; }
main .wp-block-post-content > .full-bleed, main .wp-block-post-content > .hero, main .wp-block-post-content > .cd-banner, main .wp-block-post-content > .voices, main .wp-block-post-content > .stats-band, main .wp-block-post-content > .cta-band, main .wp-block-post-content > .ad-strip { max-width: none !important; width: 100vw; left: 50%; transform: translateX(-50%); margin-left: 0 !important; margin-right: 0 !important; }
/* 主要区块全屏通铺（突破 1160px 容器）*/
.hero, .cd-banner, .voices, .stats-band, .cta-band, .ad-strip, .full-bleed {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.hero .slide { position: absolute; inset: 0; opacity: 0; transition: opacity .9s ease; }
.hero .slide.on { opacity: 1; }
.hero .slide img { width: 100%; height: 100%; object-fit: cover; }
/* 票92/02 C1：竖容器兜底取景窗。≤820px 视口下 hero 容器比 ~0.47–0.75，横图（nat 1.33–1.56）
   cover 后只露中段 ~35–55%，图内左侧主字整字被裁（"Beijing"→"eijing" 一类左切）。
   默认窗口左移（25%）；每 slide 可用区块属性 pos 覆盖（render.php 输出内联 object-position，
   内联优先级更高）。素材更换后按 320/390 截图复调。 */
@media (max-width: 820px) { .hero .slide img, .hero .slide video { object-position: 25% center; } }
.hero .glass {
  position: absolute; left: 6%; top: 50%; transform: translateY(-50%);
  width: min(560px, 84%); background: rgba(255,255,255,.72); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-radius: 18px; padding: 36px 38px; box-shadow: 0 24px 60px rgba(1,28,64,.25);
}
.hero .glass h1, .hero .glass h2 { font-size: clamp(28px, 3.6vw, 44px); margin: 0 0 12px; }
.hero .glass p { font-size: 16.5px; color: var(--ink); margin: 0 0 22px; }
/* 票92/04 E2：hero h1 升 display 层——上限 44→62px、斜率 3.6→5.2vw；下限维持 28px（390/320 移动端渲染不变） */
.hero .glass h1 { font-size: clamp(28px, 5.2vw, 62px); }
.hero .dashes { position: absolute; left: 6%; bottom: 46px; display: flex; gap: 10px; transform: translateY(50%); }
/* 票92/01 B2（WCAG 2.5.8 触控目标 ≥24px）：按钮本体放大为 34x29 透明实体，5px 视觉条
   移到 ::before（axe target-size 只认元素自身包围盒，::before 扩展命中区不记账）；
   条中心仍在容器中线（translateY(50%) 与高度无关），观感不变。 */
.hero .dash { position: relative; width: 34px; height: 29px; border: 0; padding: 0; background: transparent; cursor: pointer; }
.hero .dash::before { content: ''; position: absolute; left: 0; right: 0; top: 12px; bottom: 12px; border-radius: 3px; background: rgba(255,255,255,.55); }
.hero .dash.on::before { background: var(--yellow); }
.hero .scroll-cue {
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  width: 58px; height: 58px; border-radius: 50%; border: 2px solid var(--yellow);
  display: flex; align-items: center; justify-content: center; color: var(--yellow);
  font-size: 24px; background: rgba(0,168,255,.16); text-decoration: none; animation: bob 2.2s ease-in-out infinite;
}
@keyframes bob { 0%,100% { transform: translate(-50%,0); } 50% { transform: translate(-50%,8px); } }
/* 票92/01 B2r2：<=520px 时第 4 个 dash（尾端 x≈0.06W+166）与居中 .scroll-cue（x≈W/2±31）
   重叠（W<448 即撞，390 视口实测 dash[3] x155-189 vs cue x164-226），axe target-size 判遮挡；
   cue 移右下角静止（与 .chat-btn bottom:84px 错开，无叠压），dash 命中区不动。 */
@media (max-width: 520px) {
  .hero .scroll-cue { left: auto; right: 20px; bottom: 20px; transform: none; animation: none; }
}
/* ============ 票95/06：hero 玻璃盒移动端右内距 + @320 裁切（≤640）============ */
/* 根因：全文件无全局 box-sizing 重置，.hero .glass（:105-109）content-box 下
   width:min(560px,84%) + padding:36px 38px → 实占 84%vw+76px：@320 总宽 344.8、
   右缘 364 > 320 出屏，右内距连同 38px 被裁 → h1/p 右缘 326（vw−6=314，R1 右贴边
   @320/390/430 全中）且被 section.hero overflow:hidden 截断（@320 R4）。
   修复：≤640 切 border-box + 内距 28px 22px（右内距 22 ≥ 16 达标）。量据：
   @320 盒 268.8（右缘 288、距屏 32）→ 文本右缘 266 ≤ 314；@390 351→329 ≤ 384；
   @430 387→365 ≤ 424；h1 clamp 下限 28px 最长词 "Infrastructure" 墨宽实测 183.7px ≤
   内容宽 225（scrollW=clientW 零出盒），无需动用 26px 备选。
   border-box 只进 ≤640 带，≥641 档 computed 零变化。 */
@media (max-width: 640px) {
  .hero .glass { box-sizing: border-box; padding: 28px 22px; }
}
.social-rail { position: absolute; left: 0; top: 50%; transform: translateY(-50%); background: #fff; border-radius: 0 var(--r) var(--r) 0; padding: 12px 8px; display: flex; flex-direction: column; gap: 6px; box-shadow: 6px 8px 24px rgba(1,28,64,.18); z-index: 5; }
.social-rail a { width: 34px; height: 34px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: var(--blue); font-weight: 900; font-size: 15px; text-decoration: none; }
.social-rail a:hover { background: var(--gray); }
.chat-btn { position: fixed; right: 24px; bottom: 84px; width: 52px; height: 52px; border-radius: 50%; background: #fff; border: 0; box-shadow: 0 10px 26px rgba(1,28,64,.3); font-size: 22px; cursor: pointer; z-index: 997; }

/* ============ 倒计时带（参考站同款；--yellow 实为亮蓝）============ */
/* 票92/01 A1：带内文字 #fff→navy（#011c40 on #00A8FF = 6.48:1，白字 2.61:1 不达 AA）；
   内层按钮（L126）navy 底白字 17:1 不变。 */
.cd-banner { background: var(--yellow); color: var(--blue); text-align: center; padding: 58px 20px 54px; }
.cd-banner h1, .cd-banner h2 { color: var(--blue); font-size: clamp(30px, 4.4vw, 52px); margin: 0 0 10px; }
.cd-banner .sub { font-size: 18px; font-weight: 600; margin-bottom: 8px; color: var(--blue); }
.w-countdown { display: flex; gap: 14px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }
.w-countdown__item { background: #fff; border-radius: 14px; padding: 14px 22px; min-width: 100px; box-shadow: 0 8px 20px rgba(1,28,64,.15); }
.w-countdown__item .num { display: block; font-size: 38px; font-weight: 900; color: var(--blue); line-height: 1.05; font-variant-numeric: tabular-nums; }
.w-countdown__item .lbl { display: block; font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--ink); margin-top: 5px; }
.cd-banner .wp-block-button__link, .cd-banner .btn-pill { background: var(--blue); color: #fff; margin-top: 26px; }

/* ============ 广告条 ============ */
.ad-strip { background: var(--gray); padding: 14px 0; }
.ad-strip .ad-frame { max-width: 760px; margin: 0 auto; position: relative; height: 96px; border-radius: var(--r); overflow: hidden; background: #fff; }
.ad-strip .ad-item { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .6s ease; }
.ad-strip .ad-item.on { opacity: 1; }
.ad-strip img { max-height: 88px; width: auto; max-width: 100%; object-fit: contain; }

/* ============ 三新看点 ============ */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.news-card { background: #fff; border: 1px solid #E0E3EA; border-top: 4px solid var(--yellow); border-radius: var(--r); padding: 22px 20px; transition: transform .25s ease, box-shadow .25s ease; }
.news-card:nth-child(2) { border-top-color: var(--magenta); }
.news-card:nth-child(3) { border-top-color: var(--orange); }
.news-card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(1,28,64,.14); }
.news-card h3 { font-size: 18px; margin-bottom: 8px; }
.news-card p { font-size: 14.5px; }
.news-card a { font-weight: 800; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: var(--magenta); text-decoration: none; }
@media (max-width: 820px) { .news-grid { grid-template-columns: 1fr; } }

.strip-yellow { background: var(--yellow); color: #fff; padding: 24px 28px; border-radius: var(--r); display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.strip-yellow h3 { color: #fff; margin: 0; }
.strip-yellow .btn-pill { background: var(--blue); color: #fff; }

/* ============ 讲师声浪 ============ */
.voices { background: #fff; padding: 0 0 64px; }
.voices .quick-strip { background: var(--yellow); display: flex; justify-content: center; gap: 220px; padding: 17px 20px; flex-wrap: wrap; }
.voices .quick-strip a { color: var(--blue); font-weight: 800; font-size: 17px; text-decoration: none; }
.voices .quick-strip a:hover { text-decoration: underline; }
.voices h2 { color: var(--blue); text-align: center; font-size: clamp(30px, 4vw, 50px); margin: 52px 0 50px; }
/* 票92/04 E1 试点①：voices 标题行破全居中——左对齐 + accent 短规线。
   > 直选 + .wp-block-heading（0-2-1）压过上方 .voices h2（0-1-1）与标记里的 .has-text-align-center（0-1-0） */
.voices > h2.wp-block-heading { text-align: left; }
.voices > h2.wp-block-heading::after {
  content: ''; display: block; width: 56px; height: 4px; margin-top: 12px;
  border-radius: 4px; background: var(--yellow);
}
.voices .rail { display: flex; gap: 58px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 16px 40px 22px; }
.voices .rail::-webkit-scrollbar { height: 8px; }
.voices .rail::-webkit-scrollbar-thumb { background: #C9D2E8; border-radius: 99px; }
.voices .speaker { flex: 0 0 300px; scroll-snap-align: center; text-align: center; position: relative; padding: 0 0 6px; }
.voices .ring { position: relative; width: 252px; height: 252px; margin: 0 auto; }
.voices .disc { position: absolute; left: -18px; bottom: -16px; width: 100%; height: 100%; border-radius: 50%; background: rgba(0,168,255,.18); }
.voices .orbit { position: absolute; inset: -12px; border-radius: 50%; border: 2px dashed rgba(0,168,255,.5); animation: orbit-spin 26s linear infinite; }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
.voices .ph { position: relative; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 5px solid var(--yellow); transition: transform .25s ease; }
.voices .speaker:hover .ph { transform: scale(1.045); }
.voices .sp-name { font-weight: 800; font-size: 19px; color: var(--blue); margin-top: 26px; line-height: 1.3; }
.voices .sp-title { font-size: 14.5px; color: var(--ink); margin-top: 5px; line-height: 1.45; }
.voices .sp-org { font-size: 14.5px; color: var(--ink); margin-top: 2px; }
.voices .rail-btn { position: absolute; top: 46%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; background: var(--yellow); color: var(--blue); border: 0; font-size: 20px; font-weight: 900; cursor: pointer; box-shadow: 0 10px 24px rgba(1,28,64,.25); z-index: 5; }
.voices .rail-btn:hover { background: #0092E0; }
.voices .rail-btn.prev { left: 12px; }
.voices .rail-btn.next { right: 12px; }
@media (max-width: 820px) { .voices .speaker { flex-basis: 240px; } .voices .ring { width: 200px; height: 200px; } .voices .quick-strip { gap: 40px; } }

/* ============ Tabs ============ */
.tabs .tab-bar { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.tabs .tab-btn { background: #E7EAF2; color: var(--blue); border: 0; padding: 15px 26px; font-weight: 800; font-size: 15.5px; border-radius: var(--r) var(--r) 0 0; cursor: pointer; font-family: inherit; letter-spacing: .3px; }
.tabs .tab-btn.on { background: var(--blue); color: var(--yellow); }
.tabs .tab-panel { display: none; background: var(--blue); color: #fff; padding: 38px 44px; border-radius: 0 var(--r) var(--r) var(--r); }
.tabs .tab-panel.on { display: block; }
.tabs .tab-panel h3 { color: var(--yellow); margin-top: 0; font-size: 24px; }
.tabs .tab-panel p { font-size: 16.5px; line-height: 1.75; opacity: .95; }

/* ============ 大色块 ============ */
.box-banner { border-radius: var(--r); padding: 40px 38px; margin-top: 18px; }
.box-banner .bx-title { font-size: clamp(28px, 3.4vw, 40px); font-weight: 900; letter-spacing: 2px; margin: 0 0 10px; }
.box-banner p { margin: 0 0 16px; max-width: 720px; }
.box-banner.b-yellow { background: var(--yellow); color: #fff; }
.box-banner.b-navy { background: var(--blue); color: #fff; }
.box-banner.b-navy .bx-title { color: #fff; }
.box-banner.b-magenta { background: var(--magenta); color: #fff; }
.box-banner.b-magenta .bx-title { color: #fff; }
.box-banner .btn-pill.blue { background: var(--blue); color: #fff; }

/* ============ Logo 墙 ============ */
.logo-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
.logo-grid .lg { background: #fff; border: 1px solid #E0E3EA; border-radius: var(--r); display: flex; align-items: center; justify-content: center; padding: 12px; filter: grayscale(1); opacity: .85; transition: all .22s ease; aspect-ratio: 2/1; }
.logo-grid .lg:hover { filter: none; opacity: 1; transform: translateY(-3px); box-shadow: 0 10px 24px rgba(1,28,64,.12); }
.logo-grid img { max-height: 62px; width: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 900px) { .logo-grid { grid-template-columns: repeat(3, 1fr); } }

/* ============ 统计带 ============ */
.stats-band { background: var(--gray); padding: 46px 0; }
.stats-band .stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; text-align: center; }
.stats-band .stat .num { display: block; font-size: clamp(30px, 3.6vw, 44px); font-weight: 900; color: var(--blue); font-variant-numeric: tabular-nums; }
.stats-band .stat .lbl { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--ink); }
@media (max-width: 700px) { .stats-band .stats-grid { grid-template-columns: repeat(2, 1fr); } }
/* ============ 票95/05：数字带移动端两列 + 标签 ≥12px；倒计时标签 12px（≤640）============ */
/* 病灶一（首页数字带）：≤640 仍 4 列（@320 格 68px）+ .lbl 9px，源头是 DB 用户全局样式
   （wp_global_styles post 371，"Event Impressions" 块）的 body.page-id-318 #stats-band 域规则：
   4 列（无媒体查询，特异性 1id,2cls,1el 压掉上一行主题 ≤700 两列）+ @≤600 9px 标签。
   文件侧同先例（:876-877，票92/01 round-2）同域叠加 + !important 反压，不动 DB
   （ADR 0031 内容域另票口径；DB 反压源自身同带 page-id-318 前缀，页 ID 一变两条同死，
   无「文件侧独死 → 旧态复曝」风险）。gap 16 反压 DB 的 gap:0。 */
/* 病灶二：倒计时 .w-countdown__item .lbl（:148）11px 全视口基值（首页 + beijing2026）。
   工单修复方向原列 stats 9→11px：11 仍 <12，sweep R7（fs<12 判红）不归零，与验收
   「R7 签名归零」矛盾——按验收口径落地 12px（与 @768 档 stats 标签既有值一致）。 */
@media (max-width: 640px) {
  body.page-id-318 #stats-band .stats-grid.stats-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
  body.page-id-318 #stats-band .stat .lbl { font-size: 12px !important; }
}
/* 票95/05 扩带（merger）：倒计时 11px 是无媒体查询的全视口基值，门禁 768 档 R7 同判红
   （基线 /与 beijing2026 各 4 签名）——12px 扩至 ≤768（与页脚扩带同理：≤768 = 门禁
   档位上沿，>768 桌面 11px 维持，属门禁外存量、票 96 候选，见工单 Comments）。 */
@media (max-width: 768px) {
  .w-countdown__item .lbl { font-size: 12px; }
}

/* ============ 照片墙 / 证言 ============ */
.gallery-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.gallery-strip img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--r); transition: transform .25s ease; }
.gallery-strip img:hover { transform: scale(1.03); }
@media (max-width: 760px) { .gallery-strip { grid-template-columns: repeat(2, 1fr); } }
.quote-card { background: #fff; border: 1px solid #E0E3EA; border-left: 5px solid var(--magenta); border-radius: var(--r); padding: 22px !important; }
.quote-card .q-mark { font-size: 42px; line-height: 1; color: var(--yellow); font-weight: 900; font-family: Georgia, serif; }
.quote-card .q-who { font-weight: 800; color: var(--blue); margin-top: 12px; font-size: 13.5px; letter-spacing: .5px; }

/* ============ CTA / 页脚 / 全局表格折叠 ============ */
.cta-band { background: var(--blue); color: #fff; padding: 56px 20px; text-align: center; }
.cta-band h2 { color: #fff; }
/* 票92/04 E1 试点②：收尾 CTA 不对称化——标题行左置（accent 规线同试点①）+ 按钮行左对齐。
   标题 (0-2-1) 压过标记里的 .has-text-align-center（0-1-0）；按钮 (0-3-0) 压过核心
   .wp-block-buttons.is-content-justification-center（0-2-0）。只动对齐/排版，文字色不动。 */
.cta-band > h2.wp-block-heading { text-align: left; }
.cta-band > h2.wp-block-heading::after {
  content: ''; display: block; width: 56px; height: 4px; margin-top: 12px;
  border-radius: 4px; background: var(--yellow);
}
.cta-band .wp-block-buttons.is-content-justification-center { justify-content: flex-start; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th { background: var(--blue); color: #fff; text-align: left; padding: 12px 16px; font-size: 14px; }
.wp-block-table td { border: 1px solid #E0E3EA; padding: 11px 16px; }
.wp-block-details { background: #fff; border: 1px solid #E0E3EA; border-radius: var(--r); padding: 12px 16px; margin-top: 10px; }
.wp-block-details summary { font-weight: 700; cursor: pointer; color: var(--blue); }
.site-footer { background: var(--blue); color: #B9C4DC; padding: 56px 0 0; margin-top: 72px; }
.site-footer a { color: #E8EDF8; }
.site-footer .f-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 32px; }
.site-footer h4 { color: var(--yellow); font-size: 14px; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 14px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 9px 0; font-size: 14.5px; }
.site-footer .f-bottom { border-top: 1px solid rgba(255,255,255,.16); margin-top: 40px; padding: 18px 0; font-size: 13px; opacity: .8; text-align: center; }
/* issue 65: 法律链接行窄屏压叠——锚内断行会让行内 a 的并集盒跨行、与兄弟锚相交；锚内禁断行，换行只落在 · 分隔符空格处 */
.site-footer .f-bottom a { white-space: nowrap; }
@media (max-width: 800px) { .site-footer .f-grid { grid-template-columns: 1fr 1fr; } }
/* ============ 票95/03：页脚水平内边距（≤768）+ 窄屏单列（≤640）============ */
/* 根因：.site-footer padding:56px 0 0 零水平内边距（:265），页脚内容组 constrained
   布局按 contentSize=1360px 居中 → 视口 <1360 即全宽撑满，左对齐文本 x=0 贴死屏缘
   （sweep R1）。内边距带取 ≤768 = 门禁档位上沿（320/390/430/768 全清）；769–1359
   同类贴边为门禁外存量（票92 批「≥641 档零变化」守卫沿用，本批不越——见工单
   Comments 存量清单）。≤640 另加 f-grid 单列 gap 28（内边距承上带）：≤800 两列（上一行）在 320 档
   每列仅 144px（gap 32 占 10%），正文 14.5px 挤窄栏。本块须位于上一行之后（同特异性
   0-2-0，后者覆盖 ≤800 两列）。f-bottom 自带居中，随容器得 20px 边距后仍居中。 */
@media (max-width: 768px) {
  .site-footer { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 640px) {
  .site-footer .f-grid { grid-template-columns: 1fr; gap: 28px; }
  /* 单列后核 constrained 布局的 auto 水平边距（!important）把窄内容组居中——与
     首组（site-title/段落满宽左对齐）形成混排观感。同特异性 (0-2-0)+!important
     反压归零，四组统一贴 20px 左缘线（与全批「对齐线」口径一致）。
     641–800 两列带的既有居中观感为存量，本批不动。 */
  .site-footer .f-grid > * { margin-left: 0 !important; margin-right: 0 !important; }
}

#toTop { position: fixed; right: 24px; bottom: 148px; width: 44px; height: 44px; border-radius: 50%; background: var(--yellow); color: var(--blue); border: 0; font-size: 19px; font-weight: 900; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .3s ease; box-shadow: 0 8px 20px rgba(1,28,64,.3); z-index: 998; }
#toTop.show { opacity: 1; pointer-events: auto; }


/* ============ Sponsor 大型下拉面板（亮蓝）============ */
.nav-drop { position: relative; }
.nav-drop > a { color: #fff !important; text-decoration: none !important; }
.nav-drop:hover > a, .nav-drop:focus-within > a { color: var(--yellow) !important; }
.nav-drop > a { display: inline-flex; align-items: center; gap: 5px; }
.drop-panel {
  position: absolute; top: 100%; left: 0; min-width: 360px;
  background: var(--yellow); border-radius: 0 0 20px 20px; border-top-left-radius: 20px;
  padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s;
  box-shadow: 0 30px 60px rgba(1,28,64,.4); z-index: 60;
}
.nav-drop:hover .drop-panel, .nav-drop:focus-within .drop-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.drop-panel a {
  display: flex; justify-content: flex-start; align-items: center; gap: 10px;
  color: #fff; font-weight: 800; font-size: 16px; padding: 17px 28px;
  border-bottom: 1px solid rgba(255,255,255,.28); text-decoration: none;
  transition: background .18s ease, padding-left .18s ease;
}
.drop-panel a:first-child { background: rgba(255,255,255,.16); }
.drop-panel a:last-child { border-bottom: 0; }
.drop-panel a:hover { background: rgba(255,255,255,.26); padding-left: 36px; }
.drop-panel a .arr-r, .drop-panel a .badge-new { margin-left: auto; }
.drop-panel a img.emoji, .drop-panel a img { width: 20px; height: 20px; }
.drop-panel .arr-r { font-size: 18px; }
.badge-new { display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid #fff; border-radius: 999px; font-size: 11px; font-weight: 800; padding: 3px 12px; letter-spacing: .5px; }

/* ============ DIFGC 文字 Logo ============ */
/* 三行 Logo 锁组（DIFGC + 中文 + 英文）*/
.wordmark { font-weight: 900; font-style: italic; font-size: 38px; color: #fff; letter-spacing: 2px; line-height: 1; }
.wm-sub { font-size: 13.5px; font-weight: 800; color: #fff; letter-spacing: 3px; margin-top: 8px; }
.wm-sub-en { font-size: 11px; font-weight: 600; color: rgba(255,255,255,.85); letter-spacing: .8px; margin-top: 4px; }


/* ============ 内页页头横幅（全站统一）============ */
.page-hero {
  position: relative;
  background: linear-gradient(118deg, rgba(1,28,64,.94) 0%, rgba(10,42,82,.88) 55%, rgba(18,59,119,.82) 100%), var(--ph-img, none) center/cover no-repeat;
  color: #fff; text-align: center; padding: 72px 20px 62px;
}
.page-hero .crumb { display: block; font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--yellow); font-weight: 800; margin-bottom: 14px; }
.page-hero h1 { color: #fff; font-size: clamp(30px, 4.4vw, 50px); margin: 0 0 12px; }
.page-hero p { opacity: .93; max-width: 780px; margin: 0 auto; font-size: 17px; }
.page-hero + * { margin-top: 44px; }

/* 小节 kicker 标签 */
.kicker-label { display: inline-block; font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; color: #00A8FF; font-weight: 800; margin-bottom: 10px; }
.center { text-align: center; }

/* 信息卡（通用三列）*/
.info-card { background: #fff; border: 1px solid #E0E3EA; border-radius: var(--r); padding: 24px 22px; box-shadow: 0 2px 10px rgba(1,28,64,.05); transition: transform .25s ease, box-shadow .25s ease; }
.info-card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(1,28,64,.13); }
.info-card .ic { font-size: 30px; margin-bottom: 10px; display: block; }
.info-card h3 { font-size: 18px; margin: 0 0 8px; }
.info-card p { font-size: 14.5px; margin: 0; }

/* 联系卡 */
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 34px; }
@media (max-width: 820px) { .contact-grid { grid-template-columns: 1fr; } }

/* 页尾 CTA 条 */
.cta-inline { background: var(--blue); border-radius: var(--r); padding: 30px 34px; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-top: 44px; }
.cta-inline h3 { color: #fff; margin: 0; font-size: clamp(20px,2.4vw,26px); }
.cta-inline p { color: rgba(255,255,255,.85); margin: 4px 0 0; font-size: 14.5px; }

/* 城市横幅卡（巡展）*/
.city-card { border-radius: var(--r); overflow: hidden; border: 1px solid #E0E3EA; background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.city-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(1,28,64,.16); }
.city-card img { width: 100%; height: auto; display: block; }
/* 票92/02 C2：原 height:190px + cover 把 nat 2.25–2.9 的城市横幅压成 3.8+ 横条，
   蓝带残字（"…omotion"）与上缘黑带即被裁出的图内中段。height:auto 恢复素材自然比例；
   figure margin 归零防 core/UA 默认边距在卡内再挤出空白带。 */
.city-card .wp-block-image { margin: 0; }
.city-card .cc-body { padding: 18px 20px 20px; }
.city-card h3 { margin: 0 0 8px; font-size: 19px; }
.city-card p { font-size: 14px; margin: 0 0 12px; }
.city-card a { font-weight: 800; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: var(--magenta); text-decoration: none; }
.city-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
@media (max-width: 820px) { .city-grid { grid-template-columns: 1fr; } }

/* 嘉宾卡片：照片顶部对齐裁切（防止切掉头顶）*/
.logo-grid .ph { height: 250px !important; max-height: none !important; object-fit: cover !important; object-position: center 25% !important; }


/* ============ 票种卡（注册页）============ */
.ticket-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }
@media (max-width: 900px) { .ticket-row { grid-template-columns: 1fr; } }
.ticket-card { position: relative; background: #fff; border: 1.5px solid #E0E3EA; border-radius: 14px; padding: 0 0 22px; overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.ticket-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(1,28,64,.16); }
.ticket-card .t-head { margin: 0; padding: 16px; text-align: center; font-weight: 800; letter-spacing: 1.5px; font-size: 15px; color: #fff; background: var(--blue); }
.ticket-card .t-price { text-align: center; padding: 44px 10px 6px; font-size: 30px; font-weight: 900; color: var(--blue); }
.ticket-card .t-price small { display: block; font-size: 13px; color: #5A6B8C; font-weight: 400; margin-top: 2px; }
/* issue 66：缎带原为 45° 斜带（bbox 143×143 外溢卡顶），任何视口都与 .t-head 标题条压叠；
   改为右缘贴边水平角标签，落在标题条(y0–57)与价格(顶部 padding 44px 让位)之间，无矩形相交 */
.ticket-card .t-ribbon { position: absolute; top: 59px; right: 0; transform: none; background: var(--yellow); color: var(--blue); font-size: 12px; font-weight: 900; line-height: 1.2; padding: 5px 14px 5px 16px; letter-spacing: 1px; border-radius: 10px 0 0 10px; }
.ticket-card.featured { border-color: var(--yellow); }
.ticket-card.featured .t-head { background: var(--yellow); color: var(--blue); }
.ticket-card ul { list-style: none; margin: 6px 0 0; padding: 4px 22px 0; font-size: 14.5px; flex: 1; }
.ticket-card ul li { padding: 8px 0; border-bottom: 1px dashed #E9EDF6; }
.ticket-card ul li:last-child { border-bottom: 0; }
.ticket-card .t-btn { padding: 18px 22px 0; text-align: center; }
.ticket-card .t-btn .wp-block-button__link, .ticket-card .t-btn .btn-pill { display: inline-block; width: auto; }
.trust-note { background: #EEF3FC; border-radius: var(--r); padding: 16px 20px; font-size: 14.5px; }
/* issue 70：/register/ 法律行窄屏压叠——与 65 同病（锚内断行→行内 a 并集盒跨行、与兄弟锚相交，探针几何误判）；
   锚内禁断行，断行落在锚间空格（两锚 nowrap 后 80/168px，390 内容宽 374px 可容纳，无横向溢出）。
   三重收窄：仅注册页（page-id-343，dev/prod 同号已核）× 正文区（排除 footer，65 管辖）× 小字号居中段（页内无碰撞） */
.page-id-343 .entry-content p.has-small-font-size.has-text-align-center a { white-space: nowrap; }

.tb-brand { display: flex; align-items: center; }
.tb-brand .brand-logo { height: 56px !important; width: auto !important; }

/* ============ 页头原生化兼容（issue 04：site-logo + buttons 与原 wp:html 视觉等价）============ */
/* site-logo：className 落在包裹 div 上，img 需按原 .brand-logo 口径定尺寸 */
/* 票92/02 C3：窄视口容器钳宽 + 高度固定 56px + img{max-width:100%} 叠加把 logo 压扁 23%
   （探针 ren 2.05 ≈ 118/56）。aspect-ratio 300/114（与 logo.png 500/190 同源比例）+
   object-fit contain：容器钳宽时位图在盒内 letterbox，不再拉伸（桌面天然 56×147.4，数值不变）。
   Review 轮 F8：实测 320/390/768/1440/1920 三零（wrap=img 147.36×56、ovf 0/0、max-width
   从未生效）——审阅假设的「包裹按 300/114 算出比 56px img 矮 → 纵向溢出」在现有宽度档不发生。
   但包裹层独立 aspect-ratio 仍是唯一可能的分叉机制（若未来容器真把 img 钳窄，包裹高
   =W×114/300 < img 56 → 溢出 topbar 行）。加固：包裹高度钉在与 img 同一 56px（宽度
   shrink-to-fit 随动），两盒永不分叉；桌面 56×147.4 与 letterbox 行为不变。 */
.tb-brand .wp-block-site-logo { height: 56px; line-height: 0; }
.tb-brand .wp-block-site-logo img { height: 56px; width: auto; display: block; aspect-ratio: 300/114; object-fit: contain; }
/* Register 按钮：按钮块链接沿用原 .btn-pill 视觉（hover 已有 .wp-block-buttons 规则） */
.cta-inline .wp-block-button__link, .topbar .wp-block-button__link { display: inline-block; border-radius: var(--pill); text-transform: none; font-weight: 800; font-size: 15px; letter-spacing: .2px; padding: 12px 30px; background: var(--yellow); color: var(--blue); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }


/* ============ 全站全宽布局系统（任何屏幕自适应）============ */
.wp-site-blocks { padding-left: 0 !important; padding-right: 0 !important; }
/* 视觉色带：通铺到屏幕边缘，内容自动内缩居中 */
.hero, .cd-banner, .voices, .stats-band, .cta-band, .ad-strip, .page-hero, .full-bleed
{
  position: relative;
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: max(24px, calc((100vw - 1360px) / 2)) !important;
  padding-right: max(24px, calc((100vw - 1360px) / 2)) !important;
}
/* 文本与卡片容器：自动居中收窄（保持可读行宽） */
.wp-block-post-content > * { max-width: min(1360px, 94vw) !important; margin-left: auto !important; margin-right: auto !important; }
.wp-block-post-content > .hero, .wp-block-post-content > .cd-banner, .wp-block-post-content > .voices,
.wp-block-post-content > .stats-band, .wp-block-post-content > .cta-band, .wp-block-post-content > .ad-strip,
.wp-block-post-content > .page-hero, .wp-block-post-content > .full-bleed
{
  max-width: none !important; margin-left: 0 !important; margin-right: 0 !important;
}
/* 例外：表单与标签页保持收窄 */
.wp-block-post-content > #registration-form { max-width: 760px !important; }


/* ============ ★最终强制：全站通铺（文件末尾，覆盖一切 earlier 规则）★ ============ */
.wp-block-post-content > section.page-hero,
.wp-block-post-content > section.hero,
.wp-block-post-content > section.cd-banner,
.wp-block-post-content > section.full-bleed,
.wp-block-post-content > div.full-bleed,
.wp-block-post-content > .voices,
.wp-block-post-content > .stats-band,
.wp-block-post-content > .cta-band,
.wp-block-post-content > .ad-strip,
.wp-block-post-content > .strip-yellow,
.wp-block-post-content > .box-banner {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  position: relative;
  left: auto !important;
  transform: none !important;
  box-sizing: border-box;
  padding-left: max(24px, calc((100% - 1360px) / 2)) !important;
  padding-right: max(24px, calc((100% - 1360px) / 2)) !important;
}

/* 嘉宾卡片等高（消除参差错位）*/
.wp-block-post-content > .logo-grid { align-items: stretch !important; }
.wp-block-post-content > .logo-grid .lg { display: flex !important; flex-direction: column !important; }
.wp-block-post-content > .logo-grid .lg > div:last-child { flex: 1 1 auto !important; }


/* ============ ★Tabs 最终布局（唯一生效版本）★ ============ */
.wp-block-post-content > .tabs {
  width: min(1360px, 94vw) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  position: relative;
  left: auto !important;
  transform: none !important;
}
.tabs .tab-bar { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.tabs .tab-btn { padding: 15px 26px; font-weight: 800; font-size: 15.5px; font-family: inherit; letter-spacing: .3px; }
.tabs .tab-panel { padding: 38px 44px; border-radius: var(--r); margin-top: -1px; }
.tabs .tab-panel h3 { font-size: 24px; }
.tabs .tab-panel p { font-size: 16.5px; line-height: 1.75; opacity: .95; }


/* ============ 议程时间轴（高级简洁）============ */
.city-pills { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin: 0 auto 46px; }
.city-pills a { padding: 11px 24px; border-radius: 999px; border: 1.5px solid #E0E3EA; color: var(--blue); font-weight: 800; text-decoration: none; background: #fff; font-size: 14.5px; transition: all .2s ease; }
.city-pills a:hover { border-color: #00A8FF; color: #00A8FF; transform: translateY(-2px); }
/* issue 12：Tab 为跳转链接形态，当前城市高亮态（镜像原版 pills 即 <a>，此前只有 button.on） */
.city-pills a.on { background: var(--blue); color: #fff; border-color: var(--blue); }
.city-block { margin-bottom: 64px; }
.city-block > h2 { margin-bottom: 6px; }
.city-block .city-theme { color: #00A8FF; font-weight: 700; font-size: 15px; margin: 0 0 30px; }
.tl { position: relative; max-width: 940px; margin: 0 auto; }
.tl::before { content: ''; position: absolute; left: 152px; top: 14px; bottom: 14px; width: 2px; background: #E3E8F2; }
.tl-item { display: grid; grid-template-columns: 130px 44px 1fr; align-items: start; padding: 9px 0; }
.tl-time { text-align: right; padding-right: 20px; padding-top: 12px; }
.tl-time .t1 { display: block; font-weight: 900; color: var(--blue); font-size: 17px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.tl-time .t2 { display: block; font-size: 12px; color: #5A6B8C; margin-top: 2px; } /* 票92/01 A1：#8A93A8(3.08:1)→站点既有弱化蓝 #5A6B8C(5.35:1) */
.tl-dot { position: relative; height: 100%; }
.tl-dot::before { content: ''; position: absolute; left: 50%; top: 16px; transform: translateX(-50%); width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3.5px solid #00A8FF; box-shadow: 0 0 0 4px rgba(0,168,255,.14); }
.tl-card { background: #fff; border: 1px solid #E0E3EA; border-radius: 12px; padding: 16px 22px; box-shadow: 0 2px 10px rgba(1,28,64,.05); transition: transform .22s ease, box-shadow .22s ease; }
.tl-card:hover { transform: translateX(4px); box-shadow: 0 12px 28px rgba(1,28,64,.12); }
.tl-card h4 { margin: 0 0 7px; font-size: 17px; color: var(--blue); }
.tl-meta { display: flex; justify-content: space-between; align-items: center; gap: 14px; font-size: 13.5px; color: #5A6B8C; }
.tl-dur { background: rgba(0,168,255,.12); color: #0077A8; padding: 3px 12px; border-radius: 999px; font-weight: 800; font-size: 12px; white-space: nowrap; }
.tl-break { margin-top: 8px; font-size: 12.5px; color: #f7902d; font-weight: 700; }
.tl-empty { text-align: center; color: #8A93A8; background: #F6F7FA; border-radius: 12px; padding: 26px; }
@media (max-width: 760px) {
  /* 票95/04：轨道须容下圆点实宽（14px 核 + 4px 环 = 22px），12px 轨道曾致点/环
     压进时间文本首位数字、且点心(13)与线心(13→原6/13错位7px)不齐；26px 轨道
     心 = 竖线 left:12px+2px 宽的心，列间 8px 让内容列完全让开墨迹。
     top 2px 使点心与时间文本中心重合（业主口径：圆点即时间在轴上的标记）。 */
  .tl::before { left: 12px; }
  .tl-item { grid-template-columns: 26px 1fr; column-gap: 8px; }
  .tl-time { grid-column: 2; text-align: left; padding: 0 0 6px; display: flex; gap: 8px; align-items: baseline; }
  .tl-time .t2 { margin-top: 0; }
  .tl-dot { grid-column: 1; grid-row: 1 / span 2; }
  .tl-dot::before { left: 50%; top: 2px; }
  .tl-card { grid-column: 2; }
}

/* 北京站独立菜单（高亮）*/
.nav-inner > a.nav-bj, .nav-inner > a.nav-bj { color: #00A8FF !important; font-weight: 900; }
.nav-inner > a.nav-bj:hover { color: #fff !important; }
.nav-inner > a.nav-bj .bj-star { color: #00A8FF; font-size: 13px; margin-left: 2px; }


/* ============ 高级双语议程表（Beijing Summit）============ */
.agenda-wrap { max-width: 1160px; margin: 0 auto; }
.agenda-band td { background: var(--blue) !important; color: #fff !important; font-weight: 900; letter-spacing: 2px; text-transform: uppercase; font-size: 13.5px; padding: 12px 18px !important; border: 0 !important; }
.agenda-table td.t-time { white-space: nowrap; font-weight: 800; color: var(--blue); font-variant-numeric: tabular-nums; width: 130px; }
.agenda-table td.t-session { min-width: 320px; }
.agenda-table .s-cn { font-weight: 800; color: var(--blue); display: block; margin-bottom: 4px; font-size: 15.5px; }
.agenda-table .s-en { color: #5A6B8C; font-size: 13px; display: block; }
.agenda-table .fmt { display: inline-block; font-size: 11.5px; font-weight: 800; padding: 3px 12px; border-radius: 999px; margin-top: 8px; letter-spacing: .5px; }
.fmt-key { background: rgba(247,144,45,.16); color: #c06a10; }
.fmt-rt { background: rgba(214,38,114,.12); color: #d62672; }
.fmt-lounge { background: rgba(0,168,255,.14); color: #0077A8; }
.fmt-rep { background: rgba(1,28,64,.08); color: var(--blue); }
.agenda-table td.t-notes { font-size: 13px; color: #4A5468; }
.agenda-table td.t-notes ul { margin: 0; padding-left: 16px; }
.agenda-table td.t-notes li { margin: 4px 0; }
.agenda-table tr.break-row td { background: #F6F7FA; }
.agenda-table tr.break-row .s-cn { color: #f7902d; }

/* 时间轴卡片内备注 */
.tl-notes { margin-top: 10px; padding-top: 10px; border-top: 1px dashed #E9EDF6; font-size: 13px; color: #5A6B8C; line-height: 1.6; }
.tl-notes b { color: var(--blue); }
.tl-notes ul { margin: 6px 0 0; padding-left: 16px; }
.tl-notes li { margin: 4px 0; }


/* ============ 北京站 KV 全屏主视觉 ============ */

/* ============ 无头像兜底：渐变首字母圆标 ============ */
.avatar-mono {
  display: flex; align-items: center; justify-content: center;
  width: 100%; aspect-ratio: 1/1; border-radius: 50%;
  background: linear-gradient(135deg, #0a2a52 0%, #00A8FF 130%);
  color: #fff; font-weight: 900; font-size: clamp(28px, 3vw, 44px); letter-spacing: 1px;
}
.voices .speaker .avatar-mono { border: 3px solid var(--yellow); }
.logo-grid .avatar-mono { aspect-ratio: auto; height: 100%; border-radius: 10px 10px 0 0; font-size: 40px; }


/* ============ ★KV 全屏沉浸式（文件末尾强制）★ ============ */
main.wp-block-group { margin-top: 0 !important; }


/* ============ ★★KV 原比例全宽（最终版：完整显示、零裁切、零黑边）★★ ============ */


/* ============ 独立嘉宾横滑区（北京站等内页用）============ */
.speakers-band { background: #fff; padding: 8px 0 26px; }
.speakers-band .rail { display: flex; gap: 52px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 14px 40px 22px; max-width: 1360px; margin: 0 auto; }
.speakers-band .rail::-webkit-scrollbar { height: 8px; }
.speakers-band .rail::-webkit-scrollbar-thumb { background: #C9D2E8; border-radius: 99px; }
.speakers-band .speaker { flex: 0 0 280px; scroll-snap-align: center; text-align: center; position: relative; }
.speakers-band .ring { position: relative; width: 240px; height: 240px; margin: 0 auto; }
.speakers-band .ph { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 5px solid var(--yellow); transition: transform .25s ease; }
.speakers-band .speaker:hover .ph { transform: scale(1.05); }
.speakers-band .sp-name { font-weight: 800; font-size: 18px; color: var(--blue); margin-top: 20px; line-height: 1.3; }
.speakers-band .sp-title { font-size: 13.5px; color: #5A6B8C; margin-top: 5px; line-height: 1.5; padding: 0 14px; }
.speakers-band .avatar-mono { border: 0; border-radius: 0 !important; font-size: 72px; height: 100% !important; aspect-ratio: auto !important; background: linear-gradient(135deg,#0a2a52,#00A8FF); }


/* ============ ★KV 最终保险：零内缩全屏★ ============ */


/* ============ 区块间垂直缝隙清零（白色横条修复）============ */
.wp-block-post-content > * + * { margin-top: 18px !important; }
.wp-block-post-content > section.page-hero, .wp-block-post-content > section.hero,
.wp-block-post-content > section.cd-banner, .wp-block-post-content > section.full-bleed,
.wp-block-post-content > div.full-bleed, .wp-block-post-content > .voices,
.wp-block-post-content > .stats-band, .wp-block-post-content > .cta-band,
.wp-block-post-content > .strip-yellow, .wp-block-post-content > .box-banner,
.wp-block-post-content > .city-pills, .wp-block-post-content > .news-grid,
.wp-block-post-content > .logo-grid, .wp-block-post-content > .ticket-row,
.wp-block-post-content > .gallery-strip, .wp-block-post-content > .city-grid,
.wp-block-post-content > .contact-grid, .wp-block-post-content > .tabs,
.wp-block-post-content > .agenda-wrap, .wp-block-post-content > .cta-inline,
.wp-block-post-content > .speakers-band, .wp-block-post-content > .trust-note,
.wp-block-post-content > #registration-form {
  margin-top: 0 !important; margin-bottom: 0 !important;
}
.speakers-band .rail { gap: 52px; }


/* ============ 嘉宾卡：完整人物呈现（不裁切）============ */
.speakers-band .speaker { flex: 0 0 250px; background: #fff; border: 1px solid #E0E3EA; border-radius: 14px; overflow: hidden; padding: 0 0 18px; transition: transform .22s ease, box-shadow .22s ease; }
.speakers-band .speaker:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgba(1,28,64,.14); }
.speakers-band .ph {
  width: 100% !important; aspect-ratio: 1/1 !important; height: auto !important; max-height: none !important;
  object-fit: cover !important; object-position: center 18% !important;
  border: 0 !important; border-radius: 0 !important;
  background: linear-gradient(180deg, #EDF2FB 0%, #F7F9FD 100%);
}
.speakers-band .sp-name { font-weight: 800; font-size: 17px; color: var(--blue); margin-top: 14px; padding: 0 14px; }
.speakers-band .sp-title { font-size: 13px; color: #5A6B8C; margin-top: 5px; line-height: 1.5; padding: 0 14px; }
.speakers-band .avatar-mono { border: 0 !important; background: linear-gradient(135deg,#0a2a52,#00A8FF); }

/* ============ 议程区头部：简洁大留白 ============ */
#agenda.page-hero, .agenda-hero {
  background: none !important; color: inherit; text-align: center;
  padding: 84px 20px 26px !important;
}
#agenda.page-hero .crumb, .agenda-hero .crumb { color: #00A8FF; font-size: 12.5px; letter-spacing: 3px; }
/* 票92/01 A1r2：beijing2026 的 .agenda-hero 无底图（上方规则 background:none），crumb
   亮蓝字落到白页底可计算 = 2.61:1 判红；议程页 .page-hero 有 KV 图（axe 不可计算，未判红）。
   只给 .agenda-hero 加 navy 实底章：亮蓝 on navy = 6.48:1 构造性达标，议程页不受影响。 */
.agenda-hero .crumb {
  display: inline-block; background: var(--blue);
  padding: 5px 12px; border-radius: var(--pill); line-height: 1.5; margin-bottom: 10px;
}
#agenda.page-hero h1, .agenda-hero h1 { color: var(--blue); font-size: clamp(32px, 4.4vw, 52px); margin: 10px 0 14px; }
#agenda.page-hero p, .agenda-hero p { color: #4A5468; font-size: 17px; max-width: 780px; margin: 0 auto 8px; }
.city-pills { margin-top: 0 !important; margin-bottom: 54px !important; }
.city-block { margin-bottom: 72px !important; }
.agenda-wrap {
  background: #FBFCFE; border: 1px solid #E9EDF6; border-radius: 16px;
  padding: 10px 26px 6px !important; max-width: 1240px !important;
}


/* ============ KV HERO FINAL RULE (only one, last wins) ============ */
.wp-block-post-content > .kv-hero,
.wp-block-post-content > section.kv-hero,
.kv-hero.full-bleed {
  position: relative !important;
  display: block !important;
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  height: 100vh !important;
  min-height: 620px !important;
  max-height: none !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: #011c40 !important;
  left: auto !important;
  transform: none !important;
}
.wp-block-post-content > .kv-hero img,
.kv-hero img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}
.kv-hero + .cd-banner,
.kv-hero + * { margin-top: 0 !important; }

/* ============ FINAL OVERRIDE - speakers-band fullscreen + agenda centered ============ */
.speakers-band {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background: #fff !important;
  padding: 8px 0 26px !important;
}
.speakers-band .rail { max-width: 1360px !important; margin: 0 auto !important; }
.speakers-band .speaker { flex: 0 0 250px !important; }
.speakers-band .ring { width: 240px !important; height: 240px !important; margin: 0 auto !important; }
.speakers-band .ph { width: 240px !important; height: 240px !important; max-height: 240px !important; object-fit: cover !important; object-position: center 15% !important; border-radius: 50% !important; border: 5px solid #00A8FF !important; }
.speakers-band .sp-name { font-weight: 800 !important; font-size: 17px !important; color: #011c40 !important; margin-top: 14px !important; }
.speakers-band .sp-title { font-size: 13px !important; color: #5A6B8C !important; margin-top: 5px !important; padding: 0 14px !important; }
.agenda-wrap { max-width: 1240px !important; margin-left: auto !important; margin-right: auto !important; background: #FBFCFE !important; border: 1px solid #E9EDF6 !important; border-radius: 16px !important; padding: 10px 26px 6px !important; }
.agenda-hero { padding: 84px 20px 26px !important; }
.kv-hero { width: 100vw !important; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; padding: 0 !important; height: 100vh !important; min-height: 620px !important; }
.kv-hero img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
.cd-banner, .voices, .stats-band, .cta-band, .ad-strip, .strip-yellow, .box-banner,
.wp-block-post-content > .strip-yellow, .wp-block-post-content > .box-banner {
  width: 100vw !important; max-width: none !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  padding-left: max(24px, calc((100vw - 1360px) / 2)) !important;
  padding-right: max(24px, calc((100vw - 1360px) / 2)) !important;
}

/* ============ 嘉宾卡：去外框 + 阴影给圆环 ============ */
.speakers-band .speaker {
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}
.speakers-band .ring {
  box-shadow: 0 12px 30px rgba(0,168,255,.3) !important;
  border-radius: 50% !important;
  transition: box-shadow .25s ease, transform .25s ease !important;
}
.speakers-band .speaker:hover .ring {
  transform: scale(1.06) !important;
  box-shadow: 0 20px 44px rgba(0,168,255,.4) !important;
}
.speakers-band .ph {
  border-radius: 50% !important;
}


/* ============ 嘉宾网格模式（Speakers 页，与北京站同款圆形卡）============ */
.speakers-band.speakers-grid-mode { padding: 20px 0 40px !important; }
.speakers-band.speakers-grid-mode .rail {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 48px 40px !important;
  overflow: visible !important;
  max-width: 1360px !important;
  margin: 0 auto !important;
  padding: 10px 40px !important;
}
.speakers-band.speakers-grid-mode .speaker { flex: none !important; }
@media (max-width: 900px) { .speakers-band.speakers-grid-mode .rail { grid-template-columns: repeat(2, 1fr) !important; } }
/* issue 73：单列档 520→620。轨道 min-content 是圆环固定 240px（img content-box
   250px 视觉外溢 5px），两列本征宽 ≈565–570px——521–620 带两列放不下、此前恒
   红且被大溢出掩蔽（540 实测 scrollW=570）。该带收成与 ≤520 相同的单列大圆，
   与既有断点分档思路一致；>900 各档列数（含票 67 的 901–1159 三列）不动。 */
@media (max-width: 620px) { .speakers-band.speakers-grid-mode .rail { grid-template-columns: 1fr !important; } }
/* 票 67：901–1159 档 4 列放不下——1fr 被 .ring{width:240px} min-content 托底，
   实需 4×240+3×40+80(rail padding)=1160 > vw，1024 档第 4 列溢出到 1120（头像 border 再 +10 → 1130）。
   4 列的精确放得下边界是 vw≥1160，故中档降 3 列；≤620 单列/621–900 两列断点不动
   （票 73 前单列档为 ≤520，随 73 调整到 620，见上）。 */
@media (min-width: 901px) and (max-width: 1159px) { .speakers-band.speakers-grid-mode .rail { grid-template-columns: repeat(3, 1fr) !important; } }

/* 人脸检测标准头像：居中显示（裁切已保证脸在 42% 高度） */
.speakers-band .ph { object-position: center 30% !important; }


/* ============ Agenda 页：城市 Tab 切换 ============ */
.city-pills button {
  padding: 11px 24px; border-radius: 999px; border: 1.5px solid #E0E3EA;
  color: var(--blue); font-weight: 800; background: #fff; font-size: 14.5px;
  cursor: pointer; font-family: inherit; transition: all .18s;
}
.city-pills button:hover { border-color: #00A8FF; color: #00A8FF; }
.city-pills button.on { background: var(--blue); color: #fff; border-color: var(--blue); }
.city-panel { display: none; }
.city-panel.on { display: block; }
.city-head { text-align: center; margin: 34px 0 30px; }
.city-head h2 { font-size: clamp(24px, 2.8vw, 34px); margin-bottom: 6px; }
.tl-item.tl-break .tl-card { background: #F6F8FC; border-style: dashed; }
.tl-item.tl-break .tl-card h4 { color: #5A6B8C; font-weight: 700; }


/* ============ 展商分级展示（Top/Diamond/Platinum/Gold）============ */
.partner-tier { margin: 44px 0 0; }
.tier-title {
  text-align: center; font-size: clamp(20px, 2.4vw, 28px); color: var(--blue);
  margin: 0 0 22px; position: relative; padding-bottom: 12px;
}
.tier-title::after { content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 56px; height: 4px; border-radius: 4px; background: linear-gradient(90deg, #00A8FF, #0a2a52); }
.tier-grid { display: grid; gap: 18px; align-items: center; }
.tier-top .tier-grid, .tier-diamond .tier-grid { grid-template-columns: repeat(4, 1fr); }
.tier-platinum .tier-grid { grid-template-columns: repeat(5, 1fr); }
.tier-gold .tier-grid { grid-template-columns: repeat(6, 1fr); gap: 14px; }
.tier-grid .lg { background: #fff; border: 1px solid #E0E3EA; border-radius: 10px; display: flex; align-items: center; justify-content: center; padding: 14px; min-height: 96px; transition: transform .22s, box-shadow .22s; }
.tier-gold .tier-grid .lg { min-height: 78px; padding: 10px; }
.tier-grid .lg:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(1,28,64,.12); }
.tier-grid .plogo { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; }
.tier-top .plogo, .tier-diamond .plogo { max-height: 84px; }
@media (max-width: 900px) { .tier-top .tier-grid,.tier-diamond .tier-grid{grid-template-columns:repeat(2,1fr)} .tier-platinum .tier-grid{grid-template-columns:repeat(3,1fr)} .tier-gold .tier-grid{grid-template-columns:repeat(3,1fr)} }


/* ============ 2025 DIFGC 回顾页 ============ */
.past-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; max-width: 1360px; margin: 0 auto; padding: 0 40px; }
.past-gallery .ph-item { border-radius: 10px; overflow: hidden; aspect-ratio: 4/3; }
.past-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.past-gallery .ph-item:hover img { transform: scale(1.05); }
@media (max-width: 768px) { .past-gallery { grid-template-columns: repeat(2, 1fr); } }
.tl-part {
  text-align: center; font-weight: 900; color: var(--blue); font-size: 19px;
  margin: 40px 0 18px; padding: 10px 0; border-top: 2px solid #E9EDF6; border-bottom: 2px solid #E9EDF6;
  letter-spacing: 1px;
}
#dec-tabs.city-pills { margin: 0 auto 46px !important; }
#dec-tabs.city-pills button {
  padding: 11px 24px; border-radius: 999px; border: 1.5px solid #E0E3EA;
  color: var(--blue); font-weight: 800; background: #fff; font-size: 14.5px;
  cursor: pointer; font-family: inherit; transition: all .18s;
}
#dec-tabs.city-pills button:hover { border-color: #00A8FF; color: #00A8FF; }
#dec-tabs.city-pills button.on { background: var(--blue); color: #fff; border-color: var(--blue); }


/* ============ 首页伙伴墙轮播（kezhi/partner-wall layout="carousel"，home-partners-carousel#01）============ */
.pg-band { background: linear-gradient(135deg, var(--blue) 0%, var(--blue-2) 100%); padding: 56px 0 48px; margin: 44px 0 0; width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.pg-band, .pg-stage, .pg-track, .pg-page, .pg-grid, .pg-card { box-sizing: border-box; }
.pg-title { color: #fff !important; text-align: center; font-size: clamp(28px, 3.4vw, 42px); margin: 0 0 14px; position: relative; padding-bottom: 16px; }
.pg-title::after { content: ''; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 64px; height: 5px; border-radius: 4px; background: var(--yellow); }
/* 反压主题的 main .wp-block-post-content > * 居中限宽（max-width !important），否则带子被钳在 1360px 居中 */
main .wp-block-post-content > .pg-band,
.entry-content .pg-band { max-width: 100vw !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
.pg-stage { position: relative; max-width: 1760px; margin: 0 auto; padding: 0; overflow: hidden; }
.pg-track { display: flex; transition: transform .65s cubic-bezier(.33,.9,.25,1); }
.pg-page { flex: 0 0 100%; min-width: 100%; padding: 0 76px; }
.pg-grid { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.pg-card { background: #fff; border: 1px solid #E0E3EA; border-radius: 16px; display: flex; align-items: center; justify-content: center; padding: 18px; min-height: 140px; overflow: hidden; transition: transform .22s, box-shadow .22s, border-color .22s; }
.pg-card:hover { transform: translateY(-4px) scale(1.02); border-color: var(--yellow); box-shadow: 0 14px 30px rgba(0,0,0,.25); }
.pg-card .plogo { max-height: 68px; width: auto; height: auto; max-width: 78%; object-fit: contain; }
.pg-card span { color: var(--blue); font-weight: 800; font-size: 15px; }
.pg-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.12); color: #fff; font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .18s, border-color .18s; }
.pg-arrow:hover { background: rgba(255,255,255,.28); border-color: #fff; }
.pg-prev { left: 8px; } .pg-next { right: 8px; }
.pg-dots { display: flex; justify-content: center; gap: 8px; margin-top: 26px; }
/* 票92/01 B2：同 .hero .dash 手法——按钮实体 24x24 透明（WCAG 2.5.8 ≥24px），视觉圆点移到
   ::before 居中绘制（激活态 30px 宽条横向溢出按钮属预期，无裁剪）。 */
.pg-dot { position: relative; width: 24px; height: 24px; border: none; padding: 0; background: transparent; cursor: pointer; }
.pg-dot::before { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 10px; height: 10px; border-radius: var(--pill); background: rgba(255,255,255,.35); transition: width .25s, background .25s; }
.pg-dot.on::before { width: 30px; background: var(--yellow); }
.pg-actions { text-align: center; margin-top: 28px; }
@media (max-width: 1200px) { .pg-grid { grid-template-columns: repeat(6, 1fr); } .pg-card .plogo { max-height: 40px; } }
/* 票100/02：901–1200 恢复 8 列单行。根因：轮播每页固定 8 卡（kezhi-content-model
   kz_render_partner_wall_block）× 本带 6 列不可整除 → 6+2 两行（业主 MBP14 视口
   报障「图片折行变成了 2 行」，1200/1152/1100/1025 实测 rows=2）。本带 logo 高帽
   40px 沿用上行不改；卡宽 ~72–88px 下 logo 以高度帽渲染。置于此行后以同特异度
   后置胜出；≤900 四列（票95/02 拍板两行）与 ≤640 两列（票95/02 拍板）不受触达。
   票100/02 迭代（业主预览「LOGO 太小看不清」）：收卡内距 18→8/10、min-height
   140→96、logo 帽 78%/40px→96%/60px——单行约束下把 logo 做到 ~66–86px 宽。 */
@media (min-width: 901px) and (max-width: 1200px) {
	.pg-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
	.pg-card { padding: 8px 10px; min-height: 96px; }
	.pg-card .plogo { max-width: 96%; max-height: 60px; }
}
/* 票100/02 迭代：≥1201 带同步放大（卡内距 18→12、logo 帽 78%/68→92%/72；
   ≤900 带不动——该档 padding/max-width 走基础规则，收在带内防漏）。 */
@media (min-width: 1201px) {
	.pg-card { padding: 12px; }
	.pg-card .plogo { max-width: 92%; max-height: 72px; }
}
@media (max-width: 900px) { .pg-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; } .pg-page { padding: 0 60px; } .pg-card { min-height: 72px; } .pg-card .plogo { max-height: 32px; } }
@media (max-width: 640px) { .pg-band { padding: 40px 0 36px; } .pg-arrow { display: none; } .pg-page { padding: 0 20px; } }
/* ============ 票95/02：伙伴墙移动端两列 + logo 放大（≤640）============ */
/* 根因：≤640 沿用 4 列（@390 卡宽仅 ~78px）× 卡内距 18 × logo max-width 78% → 渲染
   31.6×13.2（@320 17.9×7.5；lxdq/zhdq 超宽幅 1024×271/266 高仅 4.7px）——业主
   「Supported by Industry Leaders 图片几乎看不到」。修复后 ≤640 两列。 */
/* 量据（.pg-card border-box，border 1+1）：@320 轨 320−2×12=296 → 卡 (296−12)/2=142、
   内容 124px；@390 卡 177、内容 159。logo 宽帽 98% → 宽上限 @320 121.5 / @390 155.8；
   高帽 65px 为最方幅 sjhl（nat 比 1.85，@768 高帽 32 下实测 59.2×32 反推）保 120px 宽：
   65×1.85≈120.3。八枚 logo（含 lxdq/zhdq）实渲染下限 120.3 ≥ 120 达标。
   页内距 20→12、卡内距 18→8 为工单「390/320 均 ≥120」口径所需：20px 页内距下
   @320 内容仅 112px，92%≈103 几何不可达，按探针实测收紧。 */
/* 640–900 档维持 4 列不动（:828-829 原样，本块全部限定 ≤640）。 */
@media (max-width: 640px) {
  .pg-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pg-page { padding: 0 12px; }
  .pg-card { padding: 8px; min-height: 84px; }
  .pg-card .plogo { max-width: 98%; max-height: 65px; }
}

/* ============ 票92/04 E2：display 层字距收紧（≥1024px 桌面档生效；<1024 字距不动，移动端可读性不回退）============ */
/* 选择器均为 live markup 已核实的主题词汇（.stats-band 内无 h2、cd-banner 无 h1，故不列入） */
@media (min-width: 1024px) {
  .hero .glass h1 { letter-spacing: -1px; }
  .cd-banner h2,
  .voices h2, .cta-band h2,
  .pg-band .pg-title { letter-spacing: -0.5px; }
}

/* ============ 票92/04 E3：display 级标题 text-wrap 平衡孤词（旧浏览器不识别该属性，自然降级 normal）============ */
.hero .glass h1,
.cd-banner h2,
.voices h2, .cta-band h2,
.pg-band .pg-title,
.event-impressions-heading,
.page-hero h1, .agenda-hero h1,
.city-head h2 {
  text-wrap: balance;
}

/* ============ 票92/01 A1：对比度补丁（内容内联样式的作用域覆写）============ */
/* enquiry「Book Your Pass」卡（#00A8FF 底，DB post_content 内联配色——ADR 0031 内容域）
   白字 2.61:1、「Register Now」链接更是 #00A8FF 压 #00A8FF（1:1）。本票纯文件修复：
   作用域 + !important 覆写整卡文字为 navy（#011c40 on #00A8FF = 6.48:1），不动 DB。
   Review 轮 F7：不再锚 DOM 序位（nth-child 编辑器插删卡即静默失效），改锚卡片
   自身的内联 accent 底色（style*="#00a8ff" i 忽略大小写；editor 色板写 hex，
   换 rgb 写法或换底色则规则随之停用——正是本规则只该管的失败条件）。
   实测 #contact-cards 内唯此卡带 #00A8FF 内联底（Sponsor 卡为 var(--blue) 深蓝底）。 */
#contact-cards div[style*="#00a8ff" i] p,
#contact-cards div[style*="#00a8ff" i] p a {
  color: var(--blue) !important;
}

/* ---------- 票92/01 round-2：axe 复扫残留（6/30 组） ---------- */
/* home「用户全局样式」（wp_global_styles 用户 theme.json 的 custom CSS，DB 内容域，
   "navy countdown + voices 20260922"）以 !important 把 #countdown 胶囊按钮压成
   白字亮蓝底（2.61:1）、#voices .rail-btn 箭头压成白字（亮蓝底 2.61:1）。本票纯文件，
   不动 DB——同域叠加选择器分量反压文字色为 navy；底色仍由该内联块定义（亮蓝底 +
   navy = 6.48:1；hover #0092e0 上 navy = 4.99:1）。（后续如清理该 DB 块，属另票。）
   Review 轮 F6 裁决（不改代码，留档）：曾议去掉 body.page-id-318 前缀以解耦页 ID——
   实查 DB（wp_global_styles post 371）该反压源规则自身同样 body.page-id-318 作用域
   （#countdown > .btn-pill / #voices .rail-btn 同款前缀），页 ID 一变两条同死，不存在
   「文件侧独死 → 白字亮蓝复曝」；且去掉前缀会丢 body 元素分量，specificity 反输 DB 规则
   （1id,2cls,1el vs 1id,2cls,0el）→ 白字立刻回来。前缀必须保留。 */
body.page-id-318 #countdown > .btn-pill.btn-pill { color: var(--blue) !important; }
body.page-id-318 #voices .rail-btn.rail-btn { color: var(--blue) !important; }
/* enquiry 联系卡 tel/mailto 链接：锚点自带内联 color:#00A8FF（on #f6f8fc 卡 2.6:1）——
   #contact-us 域 !important 覆写为 navy（15.9:1）。 */
#contact-us a[href^="tel:"],
#contact-us a[href^="mailto:"] { color: var(--blue) !important; }

/* ============ 票92/05 C4：轮播切边对位（mask 渐隐）============ */
/* 讲师轨（首页 .voices 内 .speakers-band .rail）与伙伴墙 .pg-stage 的硬切边：静止切点
   随视口宽度落点随机（实测 1920 切第6张脸缘 97%、768 切第3张脸 21%；pg 换页过渡中 logo
   硬切最深 101px），且首页 DB 内联 CSS（body.page-id-318）重定轨宽（vw-160 / vw-96）、
   卡宽被 L646 !important 钉死——整除铺排在本票 scope（仅 style.css）内不可达，取验收
   分支「边缘渐隐」：mask 双缘渐隐。切点恒落在轨 100% 处 = 渐隐尾端（不透明度≈0），
   任意宽度下硬台阶都不可见；纯绘制属性，零布局/命中区影响（不扰票01 触控目标、票04 试点）。
   左缘 72px 轻隐：scroll-snap-align:center 的聚焦卡居中远离缘区，仅滚动中左缘去硬切；
   右缘 200px 深隐：peek 卡自然溶解。grid-mode（Speakers 页静态网格）不参与渐隐。 */
.voices .rail, .speakers-band:not(.speakers-grid-mode) .rail {
  --rail-fade-l: min(72px, 18%);
  --rail-fade-r: min(200px, 25%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--rail-fade-l), #000 calc(100% - var(--rail-fade-r)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--rail-fade-l), #000 calc(100% - var(--rail-fade-r)), transparent 100%);
}
/* Review 轮 F1：mask 连同元素的 focus outline 一起渐隐（outline 画在被 mask 的
   渲染里，92/01 给轨道加的 tabindex 键盘焦点环左右两缘被吃掉）。键盘聚焦时撤掉
   纯装饰性 mask 保焦点环完整；:focus-visible 不命中鼠标/触控聚焦，滚动渐隐不变。 */
.voices .rail:focus-visible,
.speakers-band:not(.speakers-grid-mode) .rail:focus-visible {
  -webkit-mask-image: none;
  mask-image: none;
}
/* 伙伴墙 40px < 页内边距 76px（≤900 档 60px、≤640 档 20px——移动端 4 列宽卡本身压缘，
   渐隐即 peek 语义）：静止时首/末 logo 全不透明，仅过渡中缘侧 logo 溶解代替硬切；
   带宽压到 40px 是为箭头（.pg-prev/next @left/right:8px，盘心 x≈30）：F=64 时箭头盘
   实测掉到 ~50% 不透明（WCAG 1.4.11 图形对象 3:1 风险），F=40 保 ~75%。 */
.pg-stage {
  --pg-fade: min(40px, 10%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 var(--pg-fade), #000 calc(100% - var(--pg-fade)), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 var(--pg-fade), #000 calc(100% - var(--pg-fade)), transparent 100%);
}
