/* ============================================================
   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;
}
.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;
}
.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;
}

/* ====== 单条 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; }

/* ====== 风格变体：card / borderless ====== */
.wpfaq-style-card .wpfaq-item {
    box-shadow: 0 1px 3px rgba(0, 0, 0, .04) !important;
}
.wpfaq-style-card .wpfaq-item:hover {
    box-shadow: 0 6px 20px rgba(37, 99, 235, .12) !important;
    transform: translateY(-2px) !important;
}
.wpfaq-style-borderless .wpfaq-item {
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.wpfaq-style-borderless .wpfaq-question { padding-left: 0 !important; padding-right: 0 !important; }
.wpfaq-style-borderless .wpfaq-answer-inner { padding-left: 0 !important; padding-right: 0 !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);
    }
}
