/* ============================================================
   WP FAQ 插件样式 —— v5（带分类 Tab 导航 + 分组标题）
   ============================================================ */

.wpfaq {
    --wpfaq-c-primary: #2563eb;
    --wpfaq-c-primary-soft: #eff6ff;
    --wpfaq-c-border: #e5e7eb;
    --wpfaq-c-text: #1f2937;
    --wpfaq-c-text-soft: #6b7280;
    --wpfaq-c-bg: #ffffff;
    --wpfaq-c-bg-soft: #f9fafb;
    --wpfaq-radius: 12px;
    --wpfaq-gap: 14px;
    --wpfaq-anim: .3s cubic-bezier(.4, 0, .2, 1);

    max-width: 920px;
    margin: 24px auto;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
    color: var(--wpfaq-c-text);
    box-sizing: border-box;
}
.wpfaq *, .wpfaq *::before, .wpfaq *::after { box-sizing: border-box; }

/* ====== 标题 ====== */
.wpfaq-title {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: var(--wpfaq-c-text) !important;
    margin: 0 0 20px 0 !important;
    padding-left: 14px !important;
    border-left: 4px solid var(--wpfaq-c-primary) !important;
    line-height: 1.3 !important;
    letter-spacing: .5px !important;
    transition: none !important;
}

/* ====== 分类 Tab 导航（核心新增）====== */
.wpfaq-tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 0 24px 0 !important;
    padding: 6px !important;
    background: var(--wpfaq-c-bg-soft) !important;
    border: 1px solid var(--wpfaq-c-border) !important;
    border-radius: 14px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}
.wpfaq-tab {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 9px 18px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: var(--wpfaq-c-text) !important;
    background: transparent !important;
    border-radius: 10px !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    cursor: pointer !important;
    transition: all .2s ease !important;
    border: 1px solid transparent !important;
    line-height: 1 !important;
}
.wpfaq-tab:hover {
    color: var(--wpfaq-c-primary) !important;
    background: var(--wpfaq-c-bg) !important;
    border-color: var(--wpfaq-c-border) !important;
}
.wpfaq-tab.is-active {
    color: #ffffff !important;
    background: var(--wpfaq-c-primary) !important;
    border-color: var(--wpfaq-c-primary) !important;
    box-shadow: 0 2px 8px rgba(37, 99, 235, .25) !important;
}
.wpfaq-tab-count {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 22px !important;
    height: 20px !important;
    padding: 0 6px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    background: var(--wpfaq-c-bg) !important;
    color: var(--wpfaq-c-text-soft) !important;
    border-radius: 10px !important;
    border: 1px solid var(--wpfaq-c-border) !important;
    line-height: 1 !important;
}
.wpfaq-tab.is-active .wpfaq-tab-count {
    background: rgba(255, 255, 255, .22) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}

/* ====== 分类折叠手风琴（v6）====== */
.wpfaq-group {
    margin: 0 0 16px 0 !important;
    scroll-margin-top: 80px !important;  /* 锚点跳转时给 sticky 头留空 */
    border: 1px solid var(--wpfaq-c-border) !important;
    border-radius: var(--wpfaq-radius) !important;
    background: var(--wpfaq-c-bg) !important;
    overflow: hidden !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.wpfaq-group:hover { border-color: var(--wpfaq-c-primary) !important; }
.wpfaq-group.is-open { box-shadow: 0 2px 10px rgba(37, 99, 235, .06) !important; }

/* 分类标题按钮（可点击折叠）*/
.wpfaq-group-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 16px 20px !important;
    background: var(--wpfaq-c-bg) !important;
    border: 0 !important;
    cursor: pointer !important;
    text-align: left !important;
    font: inherit !important;
    transition: background .2s !important;
}
.wpfaq-group-toggle:hover { background: var(--wpfaq-c-primary-soft) !important; }
.wpfaq-group-toggle:focus-visible {
    outline: 2px solid var(--wpfaq-c-primary) !important;
    outline-offset: -2px !important;
}

.wpfaq-group-title {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow: hidden !important;
}
.wpfaq-group-name {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--wpfaq-c-text) !important;
    position: relative !important;
    padding-left: 14px !important;
    line-height: 1.3 !important;
    transition: color .2s !important;
}
.wpfaq-group-name::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 4px !important;
    height: 16px !important;
    background: var(--wpfaq-c-primary) !important;
    border-radius: 2px !important;
}
.wpfaq-group-count {
    font-size: 13px !important;
    color: var(--wpfaq-c-text-soft) !important;
    font-weight: 400 !important;
    background: var(--wpfaq-c-bg-soft) !important;
    padding: 2px 10px !important;
    border-radius: 10px !important;
    border: 1px solid var(--wpfaq-c-border) !important;
}
.wpfaq-group-toggle:hover .wpfaq-group-name,
.wpfaq-group.is-open .wpfaq-group-name { color: var(--wpfaq-c-primary) !important; }

/* 分类 + 号图标：收起=+，展开== */
.wpfaq-group-icon {
    flex-shrink: 0 !important;
    position: relative !important;
    width: 22px !important;
    height: 22px !important;
    margin-left: 12px !important;
}
.wpfaq-group-icon::before,
.wpfaq-group-icon::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 14px !important;
    height: 2px !important;
    background: var(--wpfaq-c-primary) !important;
    border-radius: 1px !important;
    transition: transform .3s ease !important;
}
.wpfaq-group-icon::before { transform: translate(-50%, -50%) !important; }
.wpfaq-group-icon::after  { transform: translate(-50%, -50%) rotate(90deg) !important; }  /* 收起：竖线 → + */
.wpfaq-group.is-open .wpfaq-group-icon::after { transform: translate(-50%, -50%) rotate(0deg) !important; }  /* 展开：横线 → = */

/* 折叠面板：grid 0fr/1fr 动画（无需 JS 测高）*/
.wpfaq-group-panel {
    display: grid !important;
    grid-template-rows: 1fr !important;
    transition: grid-template-rows .3s ease !important;
}
.wpfaq-group:not(.is-open) .wpfaq-group-panel { grid-template-rows: 0fr !important; }
.wpfaq-group-inner {
    overflow: hidden !important;
    min-height: 0 !important;
}
.wpfaq-group-desc {
    margin: 0 20px 12px 20px !important;
    font-size: 13px !important;
    color: var(--wpfaq-c-text-soft) !important;
    line-height: 1.6 !important;
}
.wpfaq-group-body {
    padding: 4px 14px 16px 14px !important;
}

/* ====== 排列布局 layout（与 style 皮肤正交）====== */
/* accordion：默认单列手风琴列表（与现有行为一致，显式声明） */
.wpfaq-layout-accordion .wpfaq-group-body {
    display: block !important;
}
/* grid：响应式网格平铺，适合主页 / 产品页 / 展示型 */
.wpfaq-layout-grid .wpfaq-group-body {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 16px !important;
    align-items: start !important;
}
.wpfaq-layout-grid .wpfaq-item {
    min-width: 0 !important;
}
/* columns：双栏分列，适合宽屏 / 文档 / 帮助中心 */
.wpfaq-layout-columns .wpfaq-group-body {
    column-count: 2 !important;
    column-gap: 20px !important;
}
.wpfaq-layout-columns .wpfaq-item {
    break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
    margin-bottom: 14px !important;
}
/* 窄屏：columns 退化为单列，避免挤压 */
@media (max-width: 600px) {
    .wpfaq-layout-columns .wpfaq-group-body { column-count: 1 !important; }
}

/* ====== 单条 FAQ（details）====== */
.wpfaq-item {
    display: block !important;
    background: var(--wpfaq-c-bg) !important;
    border: 1px solid var(--wpfaq-c-border) !important;
    border-radius: var(--wpfaq-radius) !important;
    margin: 0 0 var(--wpfaq-gap) 0 !important;
    overflow: hidden !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.wpfaq-item:hover {
    border-color: var(--wpfaq-c-primary) !important;
    box-shadow: 0 4px 12px rgba(37, 99, 235, .08) !important;
}
.wpfaq-item.is-open {
    border-color: var(--wpfaq-c-primary) !important;
    box-shadow: 0 4px 16px rgba(37, 99, 235, .1) !important;
}

/* 关键：summary 默认有 marker 三角，要去掉 */
.wpfaq-question {
    list-style: none !important;
    cursor: pointer !important;
    padding: 18px 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    user-select: none !important;
    outline: none !important;
    margin: 0 !important;
    transition: background .2s !important;
}
.wpfaq-question::-webkit-details-marker { display: none !important; }
.wpfaq-question::marker { content: "" !important; }
.wpfaq-question:hover { background: var(--wpfaq-c-primary-soft) !important; }

.wpfaq-question-text {
    flex: 1 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--wpfaq-c-text) !important;
    line-height: 1.5 !important;
    transition: color .2s !important;
}
.wpfaq-question:hover .wpfaq-question-text,
.wpfaq-item.is-open .wpfaq-question-text {
    color: var(--wpfaq-c-primary) !important;
}

/* 圆环 + 号按钮 */
.wpfaq-icon {
    flex-shrink: 0 !important;
    position: relative !important;
    width: 28px !important;
    height: 28px !important;
    border: 2px solid var(--wpfaq-c-primary) !important;
    border-radius: 50% !important;
    transition: transform .3s, background .2s !important;
}
.wpfaq-icon::before,
.wpfaq-icon::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 12px !important;
    height: 2px !important;
    background: var(--wpfaq-c-primary) !important;
    border-radius: 1px !important;
    transition: transform .3s !important;
}
.wpfaq-icon::before { transform: translate(-50%, -50%) !important; }
.wpfaq-icon::after  { transform: translate(-50%, -50%) rotate(90deg) !important; }
.wpfaq-item.is-open .wpfaq-icon {
    background: var(--wpfaq-c-primary) !important;
    transform: rotate(180deg) !important;
}
.wpfaq-item.is-open .wpfaq-icon::before,
.wpfaq-item.is-open .wpfaq-icon::after {
    background: #ffffff !important;
}

/* 答案区 */
.wpfaq-answer {
    overflow: hidden !important;
}
.wpfaq-answer-inner {
    padding: 0 22px 20px 22px !important;
    color: var(--wpfaq-c-text) !important;
    font-size: 15px !important;
    line-height: 1.75 !important;
    transition: none !important;
}
.wpfaq-answer p {
    margin: 0 0 10px 0 !important;
    color: var(--wpfaq-c-text) !important;
    transition: none !important;
}
.wpfaq-answer p:last-child { margin-bottom: 0 !important; }
.wpfaq-answer img { max-width: 100% !important; height: auto !important; border-radius: 6px !important; }
.wpfaq-answer a { color: var(--wpfaq-c-primary) !important; text-decoration: none !important; }
.wpfaq-answer a:hover { text-decoration: underline !important; }

.wpfaq-short-answer {
    background: var(--wpfaq-c-primary-soft) !important;
    border-left: 3px solid var(--wpfaq-c-primary) !important;
    padding: 10px 14px !important;
    border-radius: 6px !important;
    font-weight: 500 !important;
    color: var(--wpfaq-c-text) !important;
    margin: 0 0 14px 0 !important;
}
.wpfaq-source {
    margin-top: 12px !important;
    padding-top: 10px !important;
    border-top: 1px dashed var(--wpfaq-c-border) !important;
    font-size: 13px !important;
    color: var(--wpfaq-c-text-soft) !important;
}
.wpfaq-source span { color: var(--wpfaq-c-text-soft) !important; font-weight: 500 !important; }

/* ============================================================
   风格变体（可切换主题）
   - default : 通用（截图风，蓝）
   - card    : 卡片悬浮（圆角+大阴影，hover 上浮）
   - borderless / ghost : 去边框，适合嵌入正文/单页长文
   - modern  : 科技/SaaS（渐变紫蓝、实心圆+、强阴影）
   - classic : 传统企业/医疗/法律（墨绿、衬线、方角、实线）
   - minimal : 嵌入主页/落地页（无背景无卡、细线分隔、大留白）
   - compact : 文档/帮助中心（小字号、紧凑、信息密集）
   选择器的双类 .wpfaq.wpfaq-style-X 提高特异性，稳定覆盖基础样式。
   ============================================================ */

/* —— card：卡片悬浮 —— */
.wpfaq.wpfaq-style-card .wpfaq-item {
    box-shadow: 0 1px 3px rgba(0, 0, 0, .05) !important;
}
.wpfaq.wpfaq-style-card .wpfaq-item:hover,
.wpfaq.wpfaq-style-card .wpfaq-item.is-open {
    box-shadow: 0 8px 24px rgba(37, 99, 235, .14) !important;
    transform: translateY(-2px) !important;
}

/* —— borderless / ghost：去边框，融入正文 —— */
.wpfaq.wpfaq-style-borderless .wpfaq-item,
.wpfaq.wpfaq-style-ghost .wpfaq-item {
    border: 0 !important;
    background: transparent !important;
    border-top: 1px solid var(--wpfaq-c-border) !important;
    border-radius: 0 !important;
}
.wpfaq.wpfaq-style-borderless .wpfaq-item:last-child,
.wpfaq.wpfaq-style-ghost .wpfaq-item:last-child {
    border-bottom: 1px solid var(--wpfaq-c-border) !important;
}
.wpfaq.wpfaq-style-borderless .wpfaq-question,
.wpfaq.wpfaq-style-ghost .wpfaq-question { padding-left: 0 !important; padding-right: 0 !important; }
.wpfaq.wpfaq-style-borderless .wpfaq-answer-inner,
.wpfaq.wpfaq-style-ghost .wpfaq-answer-inner { padding-left: 0 !important; padding-right: 0 !important; }
.wpfaq.wpfaq-style-ghost .wpfaq-group { border: 0 !important; background: transparent !important; box-shadow: none !important; }
.wpfaq.wpfaq-style-ghost .wpfaq-group-toggle { padding-left: 0 !important; padding-right: 0 !important; }

/* —— modern：科技 / SaaS / 互联网 —— */
.wpfaq.wpfaq-style-modern {
    --wpfaq-c-primary: #6366f1;
    --wpfaq-c-primary-soft: #eef2ff;
    --wpfaq-radius: 16px;
    --wpfaq-gap: 12px;
}
.wpfaq.wpfaq-style-modern .wpfaq-title {
    background: linear-gradient(90deg, #6366f1, #8b5cf6);
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
    border-left: 4px solid #8b5cf6 !important;
}
.wpfaq.wpfaq-style-modern .wpfaq-item:hover,
.wpfaq.wpfaq-style-modern .wpfaq-item.is-open {
    border-color: #6366f1 !important;
    box-shadow: 0 8px 28px rgba(99, 102, 241, .18) !important;
    transform: translateY(-2px) !important;
}
.wpfaq.wpfaq-style-modern .wpfaq-icon {
    background: #6366f1 !important;
    border-color: #6366f1 !important;
}
.wpfaq.wpfaq-style-modern .wpfaq-icon::before,
.wpfaq.wpfaq-style-modern .wpfaq-icon::after { background: #fff !important; }
.wpfaq.wpfaq-style-modern .wpfaq-tab.is-active {
    background: linear-gradient(90deg, #6366f1, #8b5cf6) !important;
    border-color: transparent !important;
}

/* —— classic：传统企业 / 医疗 / 法律 —— */
.wpfaq.wpfaq-style-classic {
    --wpfaq-c-primary: #0f766e;
    --wpfaq-c-primary-soft: #f0fdfa;
    --wpfaq-radius: 4px;
    --wpfaq-gap: 10px;
}
.wpfaq.wpfaq-style-classic .wpfaq-title,
.wpfaq.wpfaq-style-classic .wpfaq-group-name,
.wpfaq.wpfaq-style-classic .wpfaq-question-text {
    font-family: Georgia, "Times New Roman", "Songti SC", "SimSun", serif !important;
}
.wpfaq.wpfaq-style-classic .wpfaq-item,
.wpfaq.wpfaq-style-classic .wpfaq-group {
    border-width: 2px !important;
    border-color: #0f766e !important;
}
.wpfaq.wpfaq-style-classic .wpfaq-icon {
    border-radius: 4px !important;
    background: #0f766e !important;
    border-color: #0f766e !important;
}
.wpfaq.wpfaq-style-classic .wpfaq-icon::before,
.wpfaq.wpfaq-style-classic .wpfaq-icon::after { background: #fff !important; }
.wpfaq.wpfaq-style-classic .wpfaq-group-icon::before,
.wpfaq.wpfaq-style-classic .wpfaq-group-icon::after { background: #0f766e !important; }

/* —— minimal：嵌入主页 / 落地页 hero —— */
.wpfaq.wpfaq-style-minimal {
    --wpfaq-c-primary: #374151;
    --wpfaq-c-primary-soft: #f3f4f6;
    --wpfaq-radius: 0;
    --wpfaq-gap: 0;
}
.wpfaq.wpfaq-style-minimal .wpfaq-group { border: 0 !important; background: transparent !important; box-shadow: none !important; }
.wpfaq.wpfaq-style-minimal .wpfaq-group-toggle { padding-left: 0 !important; padding-right: 0 !important; }
.wpfaq.wpfaq-style-minimal .wpfaq-item {
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    border-bottom: 1px solid var(--wpfaq-c-border) !important;
}
.wpfaq.wpfaq-style-minimal .wpfaq-item:first-child { border-top: 1px solid var(--wpfaq-c-border) !important; }
.wpfaq.wpfaq-style-minimal .wpfaq-question,
.wpfaq.wpfaq-style-minimal .wpfaq-answer-inner { padding-left: 0 !important; padding-right: 0 !important; }
.wpfaq.wpfaq-style-minimal .wpfaq-tabs {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px solid var(--wpfaq-c-border) !important;
    border-radius: 0 !important;
    padding: 0 !important;
    gap: 4px !important;
}
.wpfaq.wpfaq-style-minimal .wpfaq-tab { border-radius: 0 !important; border-bottom: 2px solid transparent !important; }
.wpfaq.wpfaq-style-minimal .wpfaq-tab.is-active {
    background: transparent !important;
    color: var(--wpfaq-c-primary) !important;
    border-bottom-color: var(--wpfaq-c-primary) !important;
    box-shadow: none !important;
}

/* —— compact：文档 / 帮助中心 —— */
.wpfaq.wpfaq-style-compact {
    --wpfaq-radius: 6px;
    --wpfaq-gap: 6px;
}
.wpfaq.wpfaq-style-compact .wpfaq-question { padding: 11px 14px !important; }
.wpfaq.wpfaq-style-compact .wpfaq-question-text { font-size: 14px !important; font-weight: 600 !important; }
.wpfaq.wpfaq-style-compact .wpfaq-answer-inner { padding: 0 14px 12px 14px !important; font-size: 13.5px !important; line-height: 1.6 !important; }
.wpfaq.wpfaq-style-compact .wpfaq-icon { width: 22px !important; height: 22px !important; }
.wpfaq.wpfaq-style-compact .wpfaq-icon::before,
.wpfaq.wpfaq-style-compact .wpfaq-icon::after { width: 10px !important; }
.wpfaq.wpfaq-style-compact .wpfaq-group-toggle { padding: 11px 14px !important; }
.wpfaq.wpfaq-style-compact .wpfaq-group-name { font-size: 15px !important; }
.wpfaq.wpfaq-style-compact .wpfaq-group-body { padding: 2px 8px 10px 8px !important; }

/* ====== 空状态 ====== */
.wpfaq-empty {
    text-align: center !important;
    padding: 40px 20px !important;
    color: var(--wpfaq-c-text-soft) !important;
    font-size: 14px !important;
    background: var(--wpfaq-c-bg-soft) !important;
    border: 1px dashed var(--wpfaq-c-border) !important;
    border-radius: var(--wpfaq-radius) !important;
}

/* ====== 移动端 ====== */
@media (max-width: 640px) {
    .wpfaq { margin: 16px auto; }
    .wpfaq-title { font-size: 22px !important; }
    .wpfaq-tabs {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        border-radius: 10px !important;
    }
    .wpfaq-tab { padding: 7px 14px !important; font-size: 13px !important; }
    .wpfaq-question { padding: 14px 16px !important; }
    .wpfaq-question-text { font-size: 14px !important; }
    .wpfaq-answer-inner { padding: 0 16px 16px 16px !important; font-size: 14px !important; }
    .wpfaq-group-name { font-size: 16px !important; }
    .wpfaq-group-count { font-size: 12px !important; }
}

/* ====== 暗色模式 ====== */
@media (prefers-color-scheme: dark) {
    .wpfaq {
        --wpfaq-c-border: #2f3136;
        --wpfaq-c-text: #e5e7eb;
        --wpfaq-c-text-soft: #9ca3af;
        --wpfaq-c-bg: #1f2024;
        --wpfaq-c-bg-soft: #16181c;
        --wpfaq-c-primary-soft: rgba(96, 165, 250, .12);
    }
}
