/* 常见问题模块（由 mobile-faq 移植，作用域 .ipb-faq-module） */
.ipb-faq-module,
.ipb-faq-module * {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

body.ipb-faq-modal-lock {
  overflow: hidden;
}

.ipb-faq-module .ipb-faq-ico {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
  flex-shrink: 0;
  color: var(--ipb-faq-accent-coral);
}

.ipb-faq-module {
  /* Apple HIG — 继承全局 --dm-* token，暗黑模式自动跟随 dark-mode-core.css */
  --ipb-faq-bg-primary: var(--dm-bg-secondary);
  --ipb-faq-bg-card: var(--dm-bg-elevated);
  --ipb-faq-bg-elevated: var(--dm-bg-elevated);
  --ipb-faq-bg-answer: rgba(120, 120, 128, 0.06);
  --ipb-faq-form-error-ink: var(--dm-error);
  --ipb-faq-form-error-bg: var(--dm-error-bg);
  --ipb-faq-form-error-border: var(--dm-error-border);
  --ipb-faq-success-ink: var(--dm-success);
  --ipb-faq-success-bg: var(--dm-sf-success-soft);
  --ipb-faq-success-border: var(--dm-sf-success-border);
  --ipb-faq-answer-th-bg: rgba(120, 120, 128, 0.08);
  --ipb-faq-answer-quote-border: var(--ipb-faq-accent);
  --ipb-faq-answer-quote-bg: color-mix(in srgb, var(--ipb-faq-accent-coral) 6%, transparent);
  --ipb-faq-answer-link-underline: color-mix(in srgb, var(--ipb-faq-accent-coral) 28%, transparent);
  --ipb-faq-answer-scrollbar: rgba(120, 120, 128, 0.32);
  --ipb-faq-text-primary: var(--dm-text);
  --ipb-faq-text-secondary: var(--dm-text-tertiary);
  --ipb-faq-text-muted: var(--dm-text-tertiary);
  --ipb-faq-star-idle: #d1d1d6;
  --ipb-faq-star-active: #ff9f0a;
  --ipb-faq-modal-close-bg: var(--dm-bg-secondary);
  --ipb-faq-modal-close-bg-hover: var(--dm-bg-hover, #e8e8ed);
  --ipb-faq-modal-close-ink: var(--dm-text-secondary, #48484a);
  --ipb-faq-modal-qr-bg: var(--dm-bg-secondary);
  --ipb-faq-separator: var(--dm-border);
  --ipb-faq-accent-coral: var(--husir-coral, var(--dm-accent, #ff6b6b));
  --ipb-faq-accent-coral-hover: var(--husir-coral-hover, var(--dm-accent-hover, #ff5252));
  --ipb-faq-accent-coral-bg: var(--husir-coral-soft, var(--dm-accent-soft, rgba(255, 107, 107, 0.12)));
  --ipb-faq-accent-coral-bg-strong: var(--husir-coral-strong, var(--dm-accent-strong, rgba(255, 107, 107, 0.18)));
  --ipb-faq-accent-coral-shadow: var(--husir-coral-glow, var(--dm-accent-glow, rgba(255, 107, 107, 0.15)));
  --ipb-faq-accent-coral-shadow-strong: color-mix(in srgb, var(--ipb-faq-accent-coral) 32%, transparent);
  /* 统一强调色：移除独立蓝色，复用公共珊瑚红模块 */
  --ipb-faq-accent: var(--ipb-faq-accent-coral);
  --ipb-faq-radius-xl: 8px;
  --ipb-faq-radius-lg: 8px;
  --ipb-faq-radius-md: 8px;
  --ipb-faq-radius-sm: 8px;
  --ipb-faq-shadow-float: 0 4px 30px rgba(0, 0, 0, 0.03);
  --ipb-faq-shadow-soft: 0 1px 2px rgba(0, 0, 0, 0.04), 0 8px 24px rgba(0, 0, 0, 0.04);
  --ipb-faq-shadow-medium: 0 8px 40px rgba(0, 0, 0, 0.06);
  /* 间距量表（4pt 基准，clamp 流式） */
  --ipb-faq-space-xs: 8px;
  --ipb-faq-space-sm: 12px;
  --ipb-faq-space-md: 16px;
  --ipb-faq-space-lg: clamp(20px, 3vw, 32px);
  --ipb-faq-space-xl: clamp(32px, 4vw, 48px);
  --ipb-faq-space-section: clamp(40px, 5vw, 64px);
  --ipb-faq-space-block: clamp(20px, 3vw, 32px);
  --ipb-faq-ease: cubic-bezier(0.4, 0, 0.2, 1);

  --ipb-faq-safe-bottom: env(safe-area-inset-bottom, 20px);
  --ipb-faq-safe-top: env(safe-area-inset-top, 0px);

  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'SF Pro Display', 'PingFang SC', 'Hiragino Sans GB', 'Helvetica Neue', sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: var(--ipb-faq-bg-primary);
  color: var(--ipb-faq-text-primary);
  padding: 0 0 0;
  margin: 0;
  border-radius: 0;
  content-visibility: auto;
  /* auto 前缀让浏览器记住上次渲染的实际高度，初次渲染后不再因估算偏差导致滚动条跳变 */
  contain-intrinsic-size: auto 1200px;
}

/* ======================================================================
   FAQ 共享首屏骨架（与 service-flow.css 同步）：本块与 service-flow.css
   顶部镜像块保持一致。guide 页现已同步加载本文件，修改任一处必须同步另一处，
   否则首屏会闪烁或样式漂移。
   ====================================================================== */
/* 视觉隐藏 H1：保留标题层级与 SEO，不在页面视觉中重复展示栏目名 */
main.md-faq-ipb .ipb-page-title {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* 覆盖后加载的 app.core.min.css 中 main:not(.md-home) 顶部占位 */
main.md-about_us.md-faq-ipb {
  padding-top: 0;
}

.ipb-faq-module .ipb-faq-container {
  width: 100%;
  max-width: 1240px;
  min-width: 0;
  margin: 0 auto;
  background: transparent;
  min-height: auto;
  box-sizing: border-box;
  padding-inline: var(--faq-page-gutter, 60px);
}

.ipb-faq-module .content.ipb-faq-layout {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-inline: 0;
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* H1 已作为可见页面标题，不再需要视觉隐藏 */

/* FAQ 页全宽 section 架构（仿联系页 .sec 模式） */
/* --faq-page-gutter: 页面水平内边距，面包屑与服务流程共用 */
main.md-about_us.md-faq-ipb {
  --faq-page-gutter: 60px;
  overflow-x: hidden;
  max-width: 100%;
  background: var(--dm-bg, #ffffff);
}

.md-faq-ipb__facts {
  padding: clamp(34px, 4.5vw, 60px) var(--faq-page-gutter);
  /* 外层属于页面主画布；暗黑分支由 dark-mode-core.css 收口到 --dm-bg。
     内层 __facts-inner 卡片为 --dm-bg-elevated，靠 border + box-shadow 浮起。 */
  background: var(--dm-bg-secondary, #f5f5f7);
}

@media (max-width: 833px) {
  .md-faq-ipb__facts {
    /* 50px 胶囊底部以下保留 8px，摘要卡片背景仍从视口顶部开始。 */
    padding-top: calc(env(safe-area-inset-top, 0px) + 43px);
  }
}

/* 竖屏平板菜单增高到 110px，摘要卡片需消费同一高度变量后再留出呼吸间距。 */
@media (min-width: 600px) and (max-width: 833px) and (orientation: portrait) {
  .md-faq-ipb__facts {
    padding-top: calc(env(safe-area-inset-top, 0px) + var(--mh-header-h, 110px) + 8px);
  }
}

.md-faq-ipb__facts-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: clamp(22px, 3vw, 30px);
  background: var(--dm-bg-elevated, #ffffff);
  border: 1px solid var(--dm-border, rgba(0, 0, 0, 0.06));
  border-radius: 8px;
  box-shadow: var(--dm-shadow-sm);
}

.md-faq-ipb__facts h2 {
  margin: 0 0 10px;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.18;
  letter-spacing: 0;
  color: var(--dm-text, #1d1d1f);
}

.md-faq-ipb__facts p {
  max-width: 72ch;
  margin: 0;
  font-size: 16px;
  line-height: 1.7;
  color: var(--dm-text-secondary, #636366);
  text-wrap: pretty;
}

/* 手机竖屏压缩摘要文字层级，并将卡片底部留白交给后续流程区块承载。 */
@media (max-width: 599px) {
  .md-faq-ipb__facts-inner {
    padding-top: 10px;
    padding-bottom: 10px;
    margin-top: 50px;
  }

  .md-faq-ipb__facts h2 {
    font-size: 18px;
  }

  .md-faq-ipb__facts p {
    font-size: 14px;
  }
}

@media (max-width: 1100px) {
  main.md-about_us.md-faq-ipb {
    --faq-page-gutter: 32px;
  }
}

@media (max-width: 768px) {
  main.md-about_us.md-faq-ipb {
    --faq-page-gutter: max(20px, env(safe-area-inset-left, 0px));
  }
}

.md-faq-ipb__sec {
  padding: 0 0 0;
  scroll-margin-top: calc(var(--mh-header-h, 72px) + 16px);
}

.md-faq-ipb__sec--flow {
  /* 日间保留次级底色作为基础样式；暗黑时由 dark-mode-core.css 将一级外层
     统一收口到 --dm-bg，模块内部卡片继续使用 service-flow 的层级变量。 */
  padding: 0 var(--faq-page-gutter);
  background: var(--dm-bg-secondary, #ffffff);
  /* 全局色彩过渡：背景色切换丝滑 */
  transition: background-color 0.5s ease;
}

.md-faq-ipb__sec--flow .sf-module {
  max-width: 1240px;
  margin: 0 auto;
}

/* FAQ 底部留白 */
.ipb-faq-module .ipb-faq-container {
  padding-top: clamp(28px, 3vw, 40px);
  padding-bottom: 30px;
}

.ipb-faq-module .ipb-faq-section {
  margin-bottom: var(--ipb-faq-space-section);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.ipb-faq-module .ipb-faq-hero.intro-card {
  margin-top: var(--ipb-faq-space-xl);
  margin-bottom: var(--ipb-faq-space-section);
  padding: clamp(28px, 4.5vw, 44px) clamp(28px, 4vw, 40px);
  display: flex;
  align-items: flex-start;
  gap: clamp(20px, 3vw, 28px);
  border-radius: var(--ipb-faq-radius-xl);
  border: 1px solid var(--ipb-faq-separator);
  background: var(--ipb-faq-bg-elevated);
  box-shadow: var(--ipb-faq-shadow-float);
  transition: transform 0.35s var(--ipb-faq-ease), box-shadow 0.35s var(--ipb-faq-ease);
}

/* hero intro-card 为非交互元素，移除 hover scale 避免虚假可点击暗示 */

.ipb-faq-module .intro-icon {
  width: 56px;
  height: 56px;
  background: var(--ipb-faq-accent-coral-bg);
  border-radius: var(--ipb-faq-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ipb-faq-module .intro-icon .ipb-faq-ico {
  width: 24px;
  height: 24px;
}

.ipb-faq-module .intro-text .intro-heading,
.ipb-faq-module .intro-text h1.intro-heading {
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.08;
  color: var(--ipb-faq-text-primary);
  margin: 0 0 12px;
  text-wrap: balance;
}

.ipb-faq-module .intro-text p {
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 400;
  color: var(--ipb-faq-text-muted);
  line-height: 1.5;
  margin: 0;
  max-width: 42em;
}

.ipb-faq-module .section-title {
  font-size: clamp(13px, 1.2vw, 14px);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ipb-faq-text-muted);
  margin: 0 0 clamp(14px, 2vw, 20px);
  display: block;
}

.ipb-faq-module .section-title::after {
  content: none;
}

/* 三个变体(tags/list/aside)的字号/字重/字距/大小写/颜色/text-wrap 6 项一致，抽公共声明；
   各自只保留 margin 差异（tags 无 margin，list 仅 margin-bottom，aside 多 margin-top）。 */
.ipb-faq-module .ipb-faq-section--tags .section-title,
.ipb-faq-module .ipb-faq-section--list .section-title,
.ipb-faq-module .ipb-faq-aside .section-title {
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ipb-faq-text-primary);
  text-wrap: balance;
}

.ipb-faq-module .ipb-faq-section--list .section-title {
  margin-bottom: clamp(16px, 2.5vw, 24px);
}

.ipb-faq-module .ipb-faq-aside .section-title {
  margin-top: clamp(8px, 2vw, 16px);
  margin-bottom: clamp(16px, 2.5vw, 24px);
}

.ipb-faq-module .faq-list .faq-item.ipb-faq-item--deferred {
  display: none;
}

.ipb-faq-module .ipb-faq-list-more {
  margin-top: clamp(16px, 3vw, 24px);
  text-align: center;
}

.ipb-faq-module .ipb-faq-load-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 28px;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--ipb-faq-text-primary);
  background: var(--ipb-faq-bg-elevated);
  border: 1px solid var(--ipb-faq-separator);
  border-radius: 980px;
  cursor: pointer;
  box-shadow: var(--ipb-faq-shadow-float);
  transition: background 0.3s var(--ipb-faq-ease), box-shadow 0.3s var(--ipb-faq-ease);
  -webkit-appearance: none;
  appearance: none;
}

.ipb-faq-module .ipb-faq-load-more:hover {
  box-shadow: var(--ipb-faq-shadow-soft);
  border-color: color-mix(in srgb, var(--ipb-faq-accent-coral) 35%, transparent);
  color: var(--ipb-faq-accent-coral);
}

.ipb-faq-module .ipb-faq-load-more:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

.ipb-faq-module .faq-list {
  margin-bottom: var(--ipb-faq-space-block);
  display: flex;
  flex-direction: column;
  gap: var(--ipb-faq-space-md);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.ipb-faq-module .faq-item {
  background: var(--ipb-faq-bg-elevated);
  border-radius: var(--ipb-faq-radius-lg);
  margin-bottom: 0;
  border: 1px solid var(--ipb-faq-separator);
  box-shadow: var(--ipb-faq-shadow-soft);
  overflow: hidden;
  transition: box-shadow 0.35s var(--ipb-faq-ease), border-color 0.35s var(--ipb-faq-ease);
  scroll-margin-top: calc(var(--mh-header-h, 136px) + 16px);
}

.ipb-faq-module .faq-item:has(.faq-question:focus-visible) {
  box-shadow: var(--ipb-faq-shadow-medium), 0 0 0 3px color-mix(in srgb, var(--ipb-faq-accent-coral) 28%, transparent);
}

.ipb-faq-module .faq-item:hover {
  box-shadow: var(--ipb-faq-shadow-medium);
}

.ipb-faq-module .faq-item.active {
  border-color: color-mix(in srgb, var(--ipb-faq-accent-coral) 28%, transparent);
  box-shadow: var(--ipb-faq-shadow-float), 0 0 0 1px color-mix(in srgb, var(--ipb-faq-accent-coral) 8%, transparent);
}

.ipb-faq-module .faq-question {
  display: flex;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: clamp(18px, 2.5vw, 22px) clamp(20px, 2.8vw, 24px);
  gap: var(--ipb-faq-space-md);
  min-height: 60px;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  color: inherit;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}

.ipb-faq-module .faq-question:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: -2px;
}

.ipb-faq-module .faq-icon {
  width: 34px;
  height: 34px;
  background: var(--ipb-faq-accent-coral-bg);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ipb-faq-module .faq-icon .ipb-faq-ico {
  width: 17px;
  height: 17px;
}

.ipb-faq-module .faq-text {
  flex: 1;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  color: var(--ipb-faq-text-primary);
  line-height: 1.35;
}

.ipb-faq-module .faq-arrow {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(120, 120, 128, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s var(--ipb-faq-ease), background 0.35s var(--ipb-faq-ease);
  flex-shrink: 0;
}

.ipb-faq-module .faq-arrow .ipb-faq-ico {
  width: 14px;
  height: 14px;
  color: var(--ipb-faq-text-muted);
}

.ipb-faq-module .faq-item.active .faq-arrow {
  transform: rotate(180deg);
  background: var(--ipb-faq-accent-coral-bg-strong);
}

.ipb-faq-module .faq-item.active .faq-arrow .ipb-faq-ico {
  color: var(--ipb-faq-accent-coral);
}

.ipb-faq-module .faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;
  transition: grid-template-rows 0.4s var(--ipb-faq-ease);
  background: var(--ipb-faq-bg-answer);
  border-top: 1px solid transparent;
}

.ipb-faq-module .faq-answer > * {
  min-height: 0;
  overflow: hidden;
}

/* 限高滚动始终生效（不依赖 .active），避免收起过渡瞬间 max-height 从 clamp 值
   回落为默认 none 导致内容撑满全高再被 grid 压回的「突然放大」闪烁 */
/* padding 同步加过渡：padding 仅在 .active 时赋值，收起移除 active 时若无过渡会瞬间
   清零，文字从内缩(居中)瞬移到贴左，视觉为「收起时文字突然左对齐」。与 grid 高度过渡同步 */
.ipb-faq-module .faq-answer__inner {
  max-height: clamp(340px, 50vh, 720px);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--ipb-faq-answer-scrollbar) transparent;
  transition: padding 0.4s var(--ipb-faq-ease);
}

.ipb-faq-module .faq-item.active .faq-answer {
  grid-template-rows: 1fr;
  border-top-color: var(--ipb-faq-separator);
}

.ipb-faq-module .faq-item.active .faq-answer__inner {
  padding: var(--ipb-faq-space-xs) var(--ipb-faq-space-lg) var(--ipb-faq-space-lg);
}

.ipb-faq-module .faq-item.active .faq-answer__inner::-webkit-scrollbar {
  width: 6px;
}

.ipb-faq-module .faq-item.active .faq-answer__inner::-webkit-scrollbar-thumb {
  background: var(--ipb-faq-answer-scrollbar);
  border-radius: 6px;
}

.ipb-faq-module .faq-answer__inner[tabindex="0"]:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: -4px;
  border-radius: var(--ipb-faq-radius-md);
}

/* Apple 风格正文：后台 HTML 与纯文本混排，PC 16px，手机 14px */
.ipb-faq-module .faq-answer,
main.md-about_us .ipb-faq-module .faq-answer,
.ipb-faq-module .faq-answer__inner,
main.md-about_us .ipb-faq-module .faq-answer__inner {
  font-size: 16px;
  line-height: 1.72;
  letter-spacing: 0;
  color: var(--ipb-faq-text-secondary);
  word-wrap: break-word;
  overflow-wrap: anywhere;
  text-wrap: pretty;
}

.ipb-faq-module .faq-answer :is(p, li, span, div, font, em, i, u, small),
main.md-about_us .ipb-faq-module .faq-answer :is(p, li, span, div, font, em, i, u, small) {
  font-size: 16px;
  line-height: 1.72;
  letter-spacing: 0;
  color: var(--ipb-faq-text-secondary);
}

/* 原"兼容旧选择器"块(.faq-answer font-size:16px)已删：与上方 L519 主声明对 .faq-answer 选择器
   完全相同且值相同，属冗余重声明。后代 :is() 块保留——针对富文本内联样式需独立高特异性覆盖。 */

.ipb-faq-module .faq-answer > *:first-child {
  margin-top: 14px;
}

.ipb-faq-module .faq-answer p,
main.md-about_us .ipb-faq-module .faq-answer p {
  font-size: inherit;
  color: var(--ipb-faq-text-secondary);
  line-height: 1.72;
  margin: 0 0 12px;
}

.ipb-faq-module .faq-answer p:last-child,
.ipb-faq-module .faq-answer li:last-child {
  margin-bottom: 0;
}

.ipb-faq-module .faq-answer h2,
.ipb-faq-module .faq-answer h3,
.ipb-faq-module .faq-answer h4 {
  font-size: clamp(18px, 0.3vw + 16px, 20px);
  font-weight: 600;
  letter-spacing: 0;
  color: var(--ipb-faq-text-primary);
  margin: 20px 0 10px;
  line-height: 1.35;
}

.ipb-faq-module .faq-answer h2:first-child,
.ipb-faq-module .faq-answer h3:first-child,
.ipb-faq-module .faq-answer h4:first-child {
  margin-top: 14px;
}

.ipb-faq-module .faq-answer ul,
.ipb-faq-module .faq-answer ol {
  margin: 0 0 14px;
  padding-left: 1.25em;
}

.ipb-faq-module .faq-answer li {
  margin-bottom: var(--ipb-faq-space-xs);
  line-height: 1.72;
}

.ipb-faq-module .faq-answer a {
  color: var(--ipb-faq-accent);
  text-decoration: none;
  border-bottom: 1px solid var(--ipb-faq-answer-link-underline);
  transition: border-color 0.2s ease, color 0.2s ease;
}

.ipb-faq-module .faq-answer a:hover {
  border-bottom-color: var(--ipb-faq-accent);
}

.ipb-faq-module .faq-answer img {
  max-width: 100%;
  height: auto;
  border-radius: var(--ipb-faq-radius-md);
  margin: 12px 0;
  display: block;
}

.ipb-faq-module .faq-answer table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin: 12px 0 16px;
  border-radius: var(--ipb-faq-radius-md);
  overflow: hidden;
  border: 1px solid var(--ipb-faq-separator);
}

.ipb-faq-module .faq-answer th,
.ipb-faq-module .faq-answer td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--ipb-faq-separator);
  text-align: left;
  color: var(--ipb-faq-text-secondary);
}

.ipb-faq-module .faq-answer th {
  background: var(--ipb-faq-answer-th-bg);
  font-weight: 600;
  color: var(--ipb-faq-text-primary);
}

.ipb-faq-module .faq-answer blockquote {
  margin: 14px 0;
  padding: 12px 16px;
  border: 1px solid var(--ipb-faq-separator);
  background: var(--ipb-faq-answer-quote-bg);
  border-radius: var(--ipb-faq-radius-md);
  color: var(--ipb-faq-text-secondary);
}

.ipb-faq-module .faq-answer strong,
.ipb-faq-module .faq-answer b {
  color: var(--ipb-faq-text-primary);
  font-weight: 600;
}

.ipb-faq-module .faq-answer code {
  font-size: 0.92em;
  padding: 0.15em 0.4em;
  border-radius: 6px;
  background: var(--ipb-faq-bg-answer);
  color: var(--ipb-faq-text-primary);
}

.ipb-faq-module .faq-answer pre {
  margin: 12px 0 16px;
  padding: 14px 16px;
  overflow-x: auto;
  border-radius: var(--ipb-faq-radius-md);
  background: var(--ipb-faq-bg-answer);
  border: 1px solid var(--ipb-faq-separator);
  color: var(--ipb-faq-text-secondary);
}

.ipb-faq-module .faq-answer pre code {
  padding: 0;
  background: transparent;
}

.ipb-faq-module .faq-answer hr {
  border: 0;
  border-top: 1px solid var(--ipb-faq-separator);
  margin: 20px 0;
}

/*
 * 暗黑模式：组件变量通过 --dm-* token 自动继承（见 dark-mode-core.css）。
 * CMS 富文本在 PHP 渲染阶段通过 safe_html_decode 清理 style/on* 等危险属性。
 * 此处仅保留结构性暗黑规则与组件变量继承。
 */

.ipb-faq-module .category-tags.ipb-faq-pill-scroll {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ipb-faq-space-sm);
  margin-bottom: 0;
  padding: 4px 0 8px;
}

@media (max-width: 768px) {
  .ipb-faq-module .category-tags.ipb-faq-pill-scroll {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--ipb-faq-space-sm);
    flex-wrap: unset;
    overflow-x: unset;
    -webkit-overflow-scrolling: unset;
    scrollbar-width: unset;
    margin-inline: 0;
    padding-inline: 0;
  }
  .ipb-faq-module .category-tags.ipb-faq-pill-scroll::-webkit-scrollbar {
    display: unset;
  }
  .ipb-faq-module .category-tags .tag-item {
    flex-shrink: unset;
    max-width: 100%;
    white-space: normal;
  }

  /* 手机端正文缩小至 14px（覆盖后台内联 style） */
  .ipb-faq-module .faq-answer,
  .ipb-faq-module .faq-answer__inner,
  .ipb-faq-module .faq-answer p,
  .ipb-faq-module .faq-answer span,
  .ipb-faq-module .faq-answer div,
  .ipb-faq-module .faq-answer li,
  .ipb-faq-module .faq-answer font,
  main.md-about_us .ipb-faq-module .faq-answer,
  main.md-about_us .ipb-faq-module .faq-answer__inner,
  main.md-about_us .ipb-faq-module .faq-answer p,
  main.md-about_us .ipb-faq-module .faq-answer span,
  main.md-about_us .ipb-faq-module .faq-answer div,
  main.md-about_us .ipb-faq-module .faq-answer li,
  main.md-about_us .ipb-faq-module .faq-answer font {
    font-size: 14px;
    line-height: 1.72;
  }

  .ipb-faq-module .faq-answer h2,
  .ipb-faq-module .faq-answer h3,
  .ipb-faq-module .faq-answer h4 {
    font-size: 17px;
    line-height: 1.38;
    margin: 18px 0 8px;
  }
}

.ipb-faq-module .tag-item {
  display: inline-block;
  max-width: 100%;
  padding: var(--ipb-faq-space-sm) var(--ipb-faq-space-md);
  background: var(--ipb-faq-bg-elevated);
  border-radius: 980px;
  font-size: 16px;
  font-weight: 500;
  font-family: inherit;
  line-height: 1.3;
  color: var(--ipb-faq-text-secondary);
  cursor: pointer;
  transition: transform 0.3s var(--ipb-faq-ease), background 0.3s var(--ipb-faq-ease), color 0.3s var(--ipb-faq-ease), box-shadow 0.3s var(--ipb-faq-ease), border-color 0.3s var(--ipb-faq-ease);
  border: 1px solid var(--ipb-faq-separator);
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.02);
}

.ipb-faq-module .tag-item:hover {
  transform: scale(1.02);
  background: var(--ipb-faq-bg-elevated);
  color: var(--ipb-faq-accent-coral);
  border-color: color-mix(in srgb, var(--ipb-faq-accent-coral) 35%, transparent);
}

.ipb-faq-module .tag-item.active {
  background: var(--ipb-faq-accent-coral);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 4px 20px var(--ipb-faq-accent-coral-shadow);
}

.ipb-faq-module .tag-item.active:hover {
  color: #fff;
  transform: scale(1.02);
}

.ipb-faq-module .contact-card.ipb-faq-cta {
  background: var(--ipb-faq-bg-elevated);
  border-radius: 8px;
  padding: clamp(24px, 4vw, 32px);
  margin-bottom: 0;
  position: relative;
  overflow: hidden;
  border: 1px solid var(--ipb-faq-separator);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.03);
  transition: transform 0.35s var(--ipb-faq-ease), box-shadow 0.35s var(--ipb-faq-ease);
}

.ipb-faq-module .contact-card.ipb-faq-cta::before {
  content: none;
}

.ipb-faq-module .contact-card::before {
  content: none;
}

.ipb-faq-module .contact-content {
  position: relative;
  z-index: 1;
}

.ipb-faq-module .contact-title {
  font-size: clamp(20px, 2.2vw, 24px);
  font-weight: 700;
  letter-spacing: 0;
  color: var(--ipb-faq-text-primary);
  margin: 0 0 8px;
  text-wrap: balance;
}

.ipb-faq-module .contact-desc {
  font-size: 15px;
  color: var(--ipb-faq-text-muted);
  margin: 0 0 20px;
  line-height: 1.45;
}

.ipb-faq-module a.contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  gap: var(--ipb-faq-space-xs);
  background: var(--ipb-faq-accent-coral);
  color: #fff;
  padding: 12px 24px;
  border-radius: 980px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 20px var(--ipb-faq-accent-coral-shadow);
  transition: transform 0.3s var(--ipb-faq-ease), box-shadow 0.3s var(--ipb-faq-ease), background 0.3s ease;
  text-decoration: none;
}

.ipb-faq-module a.contact-btn:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 28px var(--ipb-faq-accent-coral-shadow-strong);
  background: var(--ipb-faq-accent-coral-hover);
}

.ipb-faq-module a.contact-btn:active {
  transform: scale(0.98);
}

.ipb-faq-module .contact-btn .ipb-faq-ico {
  width: 14px;
  height: 14px;
  color: #fff;
}

.ipb-faq-module .service-list.ipb-faq-service-grid {
  display: grid;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 2.5vw, 16px);
  margin-bottom: 0;
}

/* 客服区仅在侧栏内：始终 2×2，随侧栏宽度伸缩（窄栏不用 4 列） */
.ipb-faq-module .ipb-faq-aside .service-list.ipb-faq-service-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ipb-faq-module .service-item {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  background: var(--ipb-faq-bg-elevated);
  border-radius: 8px;
  padding: clamp(14px, 2.5vw, 20px) clamp(10px, 2vw, 16px);
  text-align: center;
  border: 1px solid var(--ipb-faq-separator);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.03);
  cursor: default;
  transition: transform 0.3s var(--ipb-faq-ease), box-shadow 0.3s var(--ipb-faq-ease);
  color: inherit;
}

.ipb-faq-module a.service-item {
  text-decoration: none;
  cursor: pointer;
}

.ipb-faq-module .service-item--info {
  cursor: default;
  pointer-events: none;
}

.ipb-faq-module button.service-item {
  cursor: pointer;
  font: inherit;
  margin: 0;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
}

.ipb-faq-module a.service-item:hover,
.ipb-faq-module button.service-item:hover {
  transform: scale(1.02);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
}

.ipb-faq-module a.service-item:active,
.ipb-faq-module button.service-item:active {
  transform: scale(0.98);
}

.ipb-faq-module .service-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 14px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ipb-faq-accent-coral-bg);
  color: var(--ipb-faq-accent-coral);
}

/* 客服入口图标统一配色：底色沿用首个(服务时间)的橙透明，图形色由 .ipb-faq-ico 基础规则统一珊瑚红
   4 个 :nth-child(1..4) 逐字相同，合并为 :nth-child(-n+4)（匹配前 4 个，与原 1-4 等价） */
.ipb-faq-module .service-item:nth-child(-n+4) .service-icon {
  background: rgba(255, 159, 10, 0.1);
  color: #ff9f0a;
}

.ipb-faq-module .service-icon .ipb-faq-ico {
  width: 20px;
  height: 20px;
}

.ipb-faq-module .service-title {
  font-size: clamp(12px, 2.8vw, 13px);
  font-weight: 600;
  color: var(--ipb-faq-text-primary);
  margin-bottom: var(--ipb-faq-space-xs);
  line-height: 1.3;
}

.ipb-faq-module .service-time {
  font-size: clamp(10px, 2.4vw, 11px);
  color: var(--ipb-faq-text-muted);
  line-height: 1.35;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.ipb-faq-module .ipb-faq-aside {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.ipb-faq-module .ipb-faq-aside__surface {
  display: flex;
  flex-direction: column;
  gap: var(--ipb-faq-space-lg);
  width: 100%;
  min-width: 0;
}

@media (min-width: 1200px) {
  .ipb-faq-module .content.ipb-faq-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    grid-template-areas:
      'hero hero'
      'tags tags'
      'list aside';
    column-gap: clamp(32px, 4vw, 56px);
    row-gap: 0;
    align-items: start;
  }
  .ipb-faq-module .ipb-faq-hero {
    grid-area: hero;
  }
  .ipb-faq-module .ipb-faq-section--tags {
    grid-area: tags;
  }
  .ipb-faq-module .ipb-faq-section--list {
    grid-area: list;
    margin-bottom: 0;
  }
  .ipb-faq-module .ipb-faq-aside {
    grid-area: aside;
    position: sticky;
    top: calc(var(--mh-header-h, 100px) + 24px);
    align-self: start;
  }

  .ipb-faq-module .ipb-faq-aside__surface {
    position: relative;
    left: auto;
    top: auto;
    padding: clamp(20px, 2.5vw, 28px);
    border-radius: var(--ipb-faq-radius-xl);
    border: 1px solid var(--ipb-faq-separator);
    background: var(--ipb-faq-bg-elevated);
    box-shadow: var(--ipb-faq-shadow-float);
    transition: box-shadow 0.35s var(--ipb-faq-ease);
    /* 桌面端用 border 分隔，不需要 gap */
    gap: 0;
  }

  .ipb-faq-module .ipb-faq-aside__surface:hover {
    box-shadow: var(--ipb-faq-shadow-soft);
  }

  .ipb-faq-module .ipb-faq-aside .contact-card.ipb-faq-cta {
    margin-bottom: var(--ipb-faq-space-block);
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0 0 var(--ipb-faq-space-block);
    border-bottom: 1px solid var(--ipb-faq-separator);
    border-radius: 0;
  }

  .ipb-faq-module .ipb-faq-aside .contact-card.ipb-faq-cta::before {
    display: none;
  }

  .ipb-faq-module .ipb-faq-aside .feedback-card {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: clamp(20px, 3vw, 28px) 0 0;
    margin-top: var(--ipb-faq-space-block);
    border-top: 1px solid var(--ipb-faq-separator);
    border-radius: 0;
  }
  /* 折叠触发器在侧栏内也需透明样式 */
  .ipb-faq-module .ipb-faq-aside .feedback-toggle {
    margin-top: var(--ipb-faq-space-block);
  }

}

/* FAQ 页主栏：日间沿用次级画布；暗黑一级外层由 dark-mode-core.css 统一为 --dm-bg，
   FAQ 内部卡片仍保留 elevated/secondary 层级。 */
main.md-faq-ipb .ipb-faq-module {
  background: transparent;
}

main.md-faq-ipb .md-faq-ipb__sec {
  background-color: var(--dm-bg-secondary, #ffffff);
}

/*
 * 整页壳层暗黑、面包屑、反馈表单、微信弹窗等样式
 * 已统一由 dark-mode-core.css 管理，此处不再重复。
 */

.ipb-faq-module .ipb-faq-section--tags .category-tags.ipb-faq-pill-scroll {
  padding: clamp(12px, 2vw, 16px) clamp(14px, 2vw, 18px);
  margin: 0;
  border-radius: var(--ipb-faq-radius-lg);
  background: var(--ipb-faq-bg-elevated);
  border: 1px solid var(--ipb-faq-separator);
  box-shadow: var(--ipb-faq-shadow-float);
}

.ipb-faq-module .feedback-card {
  background: var(--ipb-faq-bg-elevated);
  border-radius: var(--ipb-faq-radius-xl);
  padding: var(--ipb-faq-space-xl);
  border: 1px solid var(--ipb-faq-separator);
  box-shadow: var(--ipb-faq-shadow-float);
  margin-bottom: 0;
  transition: box-shadow 0.35s var(--ipb-faq-ease),
              padding 0.35s var(--ipb-faq-ease),
              border-top 0.35s var(--ipb-faq-ease);
}

/* 收紧 CSP 禁止 style 属性，蜜罐必须由外链样式移出可视区域。 */
.ipb-faq-module .ipb-faq-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ipb-faq-module .feedback-card.is-success .rating-stars,
.ipb-faq-module .feedback-card.is-success .ipb-faq-feedback-label,
.ipb-faq-module .feedback-card.is-success .feedback-input,
.ipb-faq-module .feedback-card.is-success .feedback-actions,
.ipb-faq-module .feedback-card.is-success .ipb-faq-form-error {
  display: none;
}

.ipb-faq-module .feedback-header {
  display: flex;
  align-items: center;
  gap: var(--ipb-faq-space-md);
  margin-bottom: var(--ipb-faq-space-lg);
}

.ipb-faq-module .feedback-icon {
  width: 44px;
  height: 44px;
  background: var(--ipb-faq-accent-coral-bg);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ipb-faq-module .feedback-icon .ipb-faq-ico {
  width: 20px;
  height: 20px;
}

.ipb-faq-module .feedback-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ipb-faq-text-primary);
}

.ipb-faq-module .feedback-desc {
  font-size: 12px;
  color: var(--ipb-faq-text-muted);
}

.ipb-faq-module .ipb-faq-feedback-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--ipb-faq-text-secondary);
  margin: 0 0 8px;
}

.ipb-faq-module .ipb-faq-form-error {
  margin: 0 0 12px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ipb-faq-form-error-ink);
  background: var(--ipb-faq-form-error-bg);
  border: 1px solid var(--ipb-faq-form-error-border);
  border-radius: var(--ipb-faq-radius-sm);
}

.ipb-faq-module .ipb-faq-form-error:focus {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

.ipb-faq-module .ipb-faq-form-success {
  display: flex;
  align-items: center;
  gap: var(--ipb-faq-space-sm);
  margin: 0 0 12px;
  padding: 10px 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ipb-faq-success-ink);
  background: var(--ipb-faq-success-bg);
  border: 1px solid var(--ipb-faq-success-border);
  border-radius: var(--ipb-faq-radius-sm);
}
.ipb-faq-module .ipb-faq-form-success[hidden],
.ipb-faq-module .ipb-faq-form-error[hidden] {
  display: none !important;
}
.ipb-faq-module .ipb-faq-form-success .ipb-faq-ico {
  width: 16px;
  height: 16px;
  color: var(--ipb-faq-success-ink);
  flex-shrink: 0;
}

.ipb-faq-module .ipb-faq-tags-hint {
  margin: 0 0 clamp(10px, 2vw, 14px);
  font-size: 12px;
  line-height: 1.45;
  color: var(--ipb-faq-text-muted);
}

.ipb-faq-module .ipb-faq-image-zoom {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin: 12px 0;
  padding: 0;
  border: 0;
  border-radius: var(--ipb-faq-radius-md);
  background: transparent;
  color: inherit;
  font: inherit;
  line-height: 0;
  cursor: zoom-in;
  -webkit-appearance: none;
  appearance: none;
}

.ipb-faq-module .faq-answer a.ipb-faq-image-zoom,
.ipb-faq-module .faq-answer a.ipb-faq-image-zoom:hover {
  border-bottom: 0;
}

.ipb-faq-module .ipb-faq-image-zoom img[data-ipb-image-zoom-source="1"] {
  margin: 0;
  cursor: inherit;
}

.ipb-faq-module .ipb-faq-image-zoom:focus-visible {
  outline: 3px solid var(--ipb-faq-accent);
  outline-offset: 3px;
  box-shadow: 0 0 0 6px var(--ipb-faq-accent-coral-bg);
}

.ipb-faq-module .rating-stars {
  display: flex;
  gap: var(--ipb-faq-space-xs);
  margin-bottom: var(--ipb-faq-space-md);
}

.ipb-faq-module .star {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  border-radius: 8px;
  transition: color 0.3s ease, transform 0.3s ease;
  -webkit-appearance: none;
  appearance: none;
}

.ipb-faq-module .star:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

.ipb-faq-module .star .ipb-faq-ico {
  width: 24px;
  height: 24px;
  color: var(--ipb-faq-star-idle);
  transition: color 0.3s ease, transform 0.3s ease;
}

.ipb-faq-module .star.active .ipb-faq-ico,
.ipb-faq-module .star:hover .ipb-faq-ico {
  color: var(--ipb-faq-star-active);
  transform: scale(1.08);
}

.ipb-faq-module .feedback-input {
  width: 100%;
  padding: 14px;
  border: 1px solid var(--ipb-faq-separator);
  border-radius: 8px;
  font-size: 13px;
  color: var(--ipb-faq-text-primary);
  font-family: inherit;
  resize: vertical;
  outline: none;
  transition: border-color 0.3s ease;
}

.ipb-faq-module .feedback-input:focus {
  border-color: var(--ipb-faq-accent);
  box-shadow: 0 0 0 4px var(--ipb-faq-accent-coral-bg);
}

.ipb-faq-module .feedback-input::placeholder {
  color: var(--ipb-faq-text-secondary);
}

.ipb-faq-module .feedback-btn {
  width: 100%;
  padding: var(--ipb-faq-space-md) var(--ipb-faq-space-lg);
  background: var(--ipb-faq-accent-coral);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-top: var(--ipb-faq-space-md);
  transition: transform 0.3s var(--ipb-faq-ease), box-shadow 0.3s var(--ipb-faq-ease), background 0.3s ease;
  box-shadow: 0 4px 20px var(--ipb-faq-accent-coral-shadow);
}

.ipb-faq-module .feedback-btn:hover {
  transform: scale(1.01);
  box-shadow: 0 6px 28px var(--ipb-faq-accent-coral-shadow-strong);
  background: var(--ipb-faq-accent-coral-hover);
}

.ipb-faq-module .feedback-btn:active {
  transform: scale(0.98);
}
.ipb-faq-module .feedback-btn:disabled {
  cursor: wait;
  opacity: 0.65;
  transform: none;
  box-shadow: none;
}

/* 反馈表单折叠触发器（桌面端侧栏内） */
.ipb-faq-module .feedback-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: var(--ipb-faq-space-xs);
  width: 100%;
  padding: var(--ipb-faq-space-sm) var(--ipb-faq-space-md);
  background: var(--ipb-faq-bg-elevated);
  border: 1px solid var(--ipb-faq-separator);
  border-radius: var(--ipb-faq-radius-md);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--ipb-faq-text-secondary);
  cursor: pointer;
  transition: color 0.2s var(--ipb-faq-ease), border-color 0.2s var(--ipb-faq-ease);
  -webkit-appearance: none;
  appearance: none;
}
.ipb-faq-module .feedback-toggle .ipb-faq-ico {
  width: 18px;
  height: 18px;
}
.ipb-faq-module .feedback-toggle:hover {
  color: var(--ipb-faq-accent-coral);
  border-color: color-mix(in srgb, var(--ipb-faq-accent-coral) 35%, transparent);
}
.ipb-faq-module .feedback-toggle:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

/* 桌面端侧栏内：折叠触发器可见，表单默认隐藏 */
@media (min-width: 1200px) {
  .ipb-faq-module .ipb-faq-aside .feedback-toggle {
    display: inline-flex;
  }
  /* 折叠态直接移除布局，避免 form 直接子节点产生隐式 grid 行。 */
  .ipb-faq-module .ipb-faq-aside .feedback-card.ipb-faq-collapsed {
    display: none;
    border: none;
    padding: 0;
    margin-top: var(--ipb-faq-space-block);
    border-top: none;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  /* 展开态保留 collapsed 类以匹配 JS/CSS 状态，避免选择器不可达。 */
  .ipb-faq-module .ipb-faq-aside .feedback-card.ipb-faq-collapsed.is-expanded,
  .ipb-faq-module .ipb-faq-aside .feedback-card.is-expanded {
    display: block;
    padding: clamp(20px, 3vw, 28px) 0 0;
    border-top: 1px solid var(--ipb-faq-separator);
  }
}

/* 反馈表单操作按钮行 */
.ipb-faq-module .feedback-actions {
  display: flex;
  gap: var(--ipb-faq-space-sm);
  align-items: center;
  margin-top: var(--ipb-faq-space-md);
}
.ipb-faq-module .feedback-actions .feedback-btn {
  flex: 1;
  margin-top: 0;
}
.ipb-faq-module .feedback-reset {
  min-height: 44px;
  padding: var(--ipb-faq-space-sm) var(--ipb-faq-space-md);
  background: transparent;
  border: 1px solid var(--ipb-faq-separator);
  border-radius: 8px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--ipb-faq-text-muted);
  cursor: pointer;
  transition: color 0.2s var(--ipb-faq-ease), border-color 0.2s var(--ipb-faq-ease);
  -webkit-appearance: none;
  appearance: none;
}
.ipb-faq-module .feedback-reset:hover {
  color: var(--ipb-faq-text-primary);
  border-color: var(--ipb-faq-text-muted);
}
.ipb-faq-module .feedback-reset:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

/* PC：微信客服二维码弹窗（手机端仍走底部 #mob-wechat-modal，此处小屏隐藏 DOM） */
.ipb-faq-module .ipb-faq-wechat-qr-modal {
  position: fixed;
  inset: 0;
  /* 弹层层级：高于浮栏（--dm-z-float-bar）与固定顶栏（10020） */
  z-index: var(--dm-z-toast, 10500);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
/* 防止微信弹窗在 JS 初始化或缓存旧样式时误显示 */
.ipb-faq-wechat-qr-modal:not(.is-open) {
  display: none;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__backdrop {
  position: absolute;
  inset: 0;
  background: var(--dm-backdrop, rgba(0, 0, 0, 0.52));
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 360px;
  background: var(--ipb-faq-bg-elevated);
  border: 1px solid var(--ipb-faq-separator);
  border-radius: var(--ipb-faq-radius-xl);
  padding: 40px 32px 36px;
  box-shadow: var(--ipb-faq-shadow-medium);
  transform: scale(0.96);
  transition: transform 0.28s var(--ipb-faq-ease);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal.is-open .ipb-faq-wechat-qr-modal__panel {
  transform: scale(1);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--ipb-faq-modal-close-bg);
  color: var(--ipb-faq-modal-close-ink);
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__close:hover {
  background: var(--ipb-faq-modal-close-bg-hover);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__close:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__close .ipb-faq-ico {
  width: 18px;
  height: 18px;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__close .ipb-faq-ico path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__title {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 600;
  text-align: center;
  color: var(--ipb-faq-text-primary);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__desc {
  margin: 0 0 22px;
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
  color: var(--ipb-faq-text-secondary);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__imgWrap {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 12px;
  background: var(--ipb-faq-modal-qr-bg);
  border-radius: 8px;
  border: 1px solid var(--ipb-faq-separator);
}
.ipb-faq-module .ipb-faq-wechat-qr-modal__imgWrap img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/*
 * 顶栏占位由 modern-header.css（body padding-top: var(--mh-header-h)）统一处理。
 * 勿再用旧版 --mob-head-hd-offset 70px 覆盖，否则 PC 端（如 1170px 宽）正文会与固定菜单重叠。
 */
@media (min-width: 901px) {
  .ipb-faq-module .service-title {
    font-size: 16px;
  }

  .ipb-faq-module .service-time {
    font-size: 14px;
  }
}

@media (max-width: 900px) {
  /* 表单获得焦点时避让移动端固定返回按钮，避免覆盖清除/提交操作。 */
  body.ipb-faq-feedback-active #husirBackPrev,
  body.ipb-faq-feedback-active #husirBackTop {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: none !important;
  }

  body.custom-override .ipb-faq-module .ipb-faq-wechat-qr-modal {
    display: none;
  }

  /* 手机端：保持 Hero 标题层级高于区块标题 */
  .ipb-faq-module .content .intro-text .intro-heading,
  .ipb-faq-module .content .intro-text h1.intro-heading {
    font-size: clamp(20px, 5.2vw, 26px);
  }

  .ipb-faq-module .content .intro-text p {
    font-size: 14px;
  }

  .ipb-faq-module .ipb-faq-section--tags .section-title {
    font-size: clamp(18px, 4.5vw, 24px);
  }

  .ipb-faq-module .ipb-faq-section--list .section-title,
  .ipb-faq-module .ipb-faq-aside .section-title {
    font-size: clamp(18px, 4.5vw, 22px);
  }

  .ipb-faq-module .content .faq-text {
    font-size: 16px;
  }

  /* 手机端：锚点滚动紧贴固定顶栏底部（珊瑚顶栏已移除） */
  .ipb-faq-module .faq-item {
    scroll-margin-top: calc(env(safe-area-inset-top, 0px) + var(--mob-head-hd-offset, 56px) + 12px);
  }

  .ipb-faq-module .content .tag-item {
    font-size: 14px;
  }

  .ipb-faq-module .content .contact-title {
    font-size: 17px;
  }

  .ipb-faq-module .content .contact-desc {
    font-size: 13px;
  }

  .ipb-faq-module .content a.contact-btn {
    font-size: 14px;
  }

  .ipb-faq-module .content .service-title {
    font-size: 14px;
  }

  .ipb-faq-module .content .service-time {
    font-size: 12px;
  }

  .ipb-faq-module .content .feedback-title {
    font-size: 16px;
  }

  .ipb-faq-module .content .feedback-desc {
    font-size: 13px;
  }

  .ipb-faq-module .content .feedback-input {
    font-size: 16px;
  }

  .ipb-faq-module .content .feedback-btn {
    font-size: 16px;
  }
}

/* 小屏保持 2×2 网格（4 个入口：在线 / 电话 / 邮件 / 微信） */
@media (max-width: 600px) {
  .ipb-faq-module .service-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ipb-faq-space-sm);
  }

  .ipb-faq-module .service-item {
    padding: 14px 10px;
  }

  .ipb-faq-module .content .service-title {
    font-size: 13px;
  }

  .ipb-faq-module .content .service-time {
    font-size: 11px;
    word-break: break-all;
  }
}

/* 手机竖屏压缩 FAQ 的纵向节奏；600px 起的平板继续使用紧凑基线间距。 */
@media (max-width: 599px) {
  .ipb-faq-module .ipb-faq-container {
    padding-top: 0;
  }

  .ipb-faq-module .ipb-faq-hero.intro-card {
    margin-top: 30px;
    margin-bottom: 30px;
  }

  .ipb-faq-module .ipb-faq-section--list {
    margin-bottom: 0;
  }

  .ipb-faq-module .contact-card.ipb-faq-cta {
    padding-top: 30px;
    padding-bottom: 30px;
  }

  /* 手机客服卡将说明文字与电话胶囊并排，避免 CTA 独占一行拉高卡片。 */
  .ipb-faq-module .contact-card.ipb-faq-cta .contact-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
  }

  .ipb-faq-module .contact-card.ipb-faq-cta .contact-title {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    margin: 0;
  }

  .ipb-faq-module .contact-card.ipb-faq-cta .contact-desc {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
    margin: 0;
  }

  .ipb-faq-module .contact-card.ipb-faq-cta .contact-btn {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    white-space: nowrap;
  }
}

/* 减少动效：系统偏好与可访问性 */
@media (prefers-reduced-motion: reduce) {
  .ipb-faq-module .ipb-faq-hero.intro-card,
  .ipb-faq-module .faq-item,
  .ipb-faq-module .faq-arrow,
  .ipb-faq-module .faq-answer,
  .ipb-faq-module .tag-item,
  .ipb-faq-module .contact-card.ipb-faq-cta,
  .ipb-faq-module a.contact-btn,
  .ipb-faq-module .service-item,
  .ipb-faq-module .feedback-btn,
  .ipb-faq-module .feedback-toggle,
  .ipb-faq-module .feedback-card,
  .ipb-faq-module .star,
  .ipb-faq-module .star .ipb-faq-ico,
  .ipb-faq-module .ipb-faq-wechat-qr-modal,
  .ipb-faq-module .ipb-faq-wechat-qr-modal__panel {
    /* 系统请求减少动效时，强制覆盖组件过渡时长，避免展开/弹窗造成眩晕 */
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }

  .ipb-faq-module .ipb-faq-hero.intro-card:hover,
  .ipb-faq-module .tag-item:hover,
  .ipb-faq-module a.contact-btn:hover,
  .ipb-faq-module a.service-item:hover,
  .ipb-faq-module button.service-item:hover,
  .ipb-faq-module .feedback-btn:hover,
  .ipb-faq-module .feedback-toggle:hover,
  .ipb-faq-module .star:hover .ipb-faq-ico,
  .ipb-faq-module .star.active .ipb-faq-ico {
    /* 与上方过渡覆盖配套，减少动效场景下禁用 hover 位移 */
    transform: none !important;
  }

  .ipb-faq-module .ipb-faq-wechat-qr-modal__backdrop {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

.ipb-faq-module .tag-item:focus-visible {
  outline: 2px solid var(--ipb-faq-accent);
  outline-offset: 2px;
}

/* FAQ 答案区 PhotoSwipe 壳层（JS 注入）：未打开时不参与文档流 */
.pswp.ipb-faq-pswp-root:not(.pswp--open) {
  display: none;
}

/* PhotoSwipe 官方 z-index:1500 低于固定顶栏（10020），打开时被遮挡。
   覆盖到 --dm-z-modal 之上，确保图片放大层在最顶层。 */
.pswp.ipb-faq-pswp-root.pswp--open {
  z-index: var(--dm-z-modal, 10300);
}

.pswp.ipb-faq-pswp-root .pswp__button:focus-visible {
  outline: 2px solid var(--husir-focus-ring, var(--dm-accent, #c63f00));
  outline-offset: -3px;
}

/* PC 引导页按内容密度分配一级模块留白；流程区与暗黑主画布同底，外边距不会形成色带。 */
@media (min-width: 901px) {
  main.md-faq-ipb {
    --faq-facts-block-space: 50px;
    --faq-flow-section-gap: 30px;
    --faq-content-top-space: 80px;
    --faq-single-column-follow-space: 80px;
  }

  .md-faq-ipb > .md-faq-ipb__facts {
    margin-bottom: 0 !important;
    padding-top: var(--faq-facts-block-space);
    padding-bottom: var(--faq-facts-block-space) !important;
  }

  .md-faq-ipb > .md-faq-ipb__sec {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: var(--faq-content-top-space);
  }

  /* FAQ 首卡不再叠加容器内边距与自身外边距，顶部节奏由一级 section 承载。 */
  .md-faq-ipb > .md-faq-ipb__sec:not(.md-faq-ipb__sec--flow) .ipb-faq-container {
    padding-top: 0;
  }

  .md-faq-ipb > .md-faq-ipb__sec:not(.md-faq-ipb__sec--flow) .ipb-faq-hero.intro-card {
    margin-top: 0;
  }

  /* 服务流程使用独立区块间距，内部模块不再叠加顶部 padding。 */
  .md-faq-ipb > .md-faq-ipb__sec--flow {
    margin-top: var(--faq-flow-section-gap) !important;
    padding-top: 0;
  }
}

/* 901-1199px 仍为单栏：热门问题与其后的客服区域需要明确的纵向分隔。 */
@media (min-width: 901px) and (max-width: 1199px) {
  main.md-faq-ipb .ipb-faq-module .ipb-faq-section--list {
    margin-bottom: var(--faq-single-column-follow-space);
  }
}
