/* Smart FAQ Schema Pro — Public Styles */

/* ── Base ──────────────────────────────────────────────────── */
.sfsp-faq-section {
    margin: 2em 0;
    font-family: var(--sfsp-font-family, inherit);
}
.sfsp-faq-title {
    color: var(--sfsp-title-color, #1a1a2e);
    margin-bottom: .8em;
    line-height: 1.3;
}
.sfsp-faq-list { margin: 0; padding: 0; list-style: none; }
.sfsp-faq-item { margin: 0; }
.sfsp-faq-question { margin: 0; font-size: var(--sfsp-font-size-question, 16px); }
.sfsp-faq-trigger {
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    text-align: left;
    font-family: var(--sfsp-font-family, inherit);
    font-size: var(--sfsp-font-size-question, 16px);
    font-weight: 600;
    color: var(--sfsp-heading-color, #1a1a2e);
    transition: color .2s;
}
.sfsp-faq-trigger:hover { color: var(--sfsp-heading-hover, #e94560); }
.sfsp-faq-trigger[aria-expanded="true"] { color: var(--sfsp-accent-color, #e94560); }
.sfsp-faq-icon { flex-shrink: 0; transition: transform .25s ease; color: var(--sfsp-accent-color, #e94560); }
.sfsp-faq-trigger[aria-expanded="true"] .sfsp-faq-icon { transform: rotate(180deg); }
.sfsp-faq-answer { display: none; }
.sfsp-faq-answer.sfsp-open { display: block; }
.sfsp-faq-answer-inner {
    font-size: var(--sfsp-font-size-answer, 15px);
    color: var(--sfsp-answer-color, #444);
    line-height: 1.7;
}
.sfsp-faq-answer-inner p:first-child { margin-top: 0; }
.sfsp-faq-answer-inner p:last-child  { margin-bottom: 0; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 1 — Modern Accordion                                  */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-modern .sfsp-faq-list {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 16px rgba(0,0,0,.07);
}
.sfsp-style-accordion-modern .sfsp-faq-item {
    border-bottom: 1px solid var(--sfsp-border-color, #e2e8f0);
    background: var(--sfsp-bg-color, #fff);
}
.sfsp-style-accordion-modern .sfsp-faq-item:last-child { border-bottom: none; }
.sfsp-style-accordion-modern .sfsp-faq-trigger {
    padding: 18px 22px;
}
.sfsp-style-accordion-modern .sfsp-faq-trigger[aria-expanded="true"] {
    background: rgba(108,71,255,.04);
    border-left: 3px solid var(--sfsp-accent-color, #e94560);
}
.sfsp-style-accordion-modern .sfsp-faq-answer-inner { padding: 0 22px 18px 25px; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 2 — Minimal Lines                                     */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-minimal .sfsp-faq-item {
    border-bottom: 1px solid var(--sfsp-border-color, #e2e8f0);
}
.sfsp-style-accordion-minimal .sfsp-faq-trigger {
    padding: 16px 0;
    border-bottom: none;
}
.sfsp-style-accordion-minimal .sfsp-faq-trigger[aria-expanded="true"] {
    color: var(--sfsp-accent-color, #e94560);
}
.sfsp-style-accordion-minimal .sfsp-faq-answer-inner {
    padding: 0 0 16px;
    border-left: 2px solid var(--sfsp-accent-color, #e94560);
    padding-left: 16px;
}

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 3 — Boxed Cards                                       */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-boxed .sfsp-faq-list { display: flex; flex-direction: column; gap: 10px; }
.sfsp-style-accordion-boxed .sfsp-faq-item {
    border: 1.5px solid var(--sfsp-border-color, #e2e8f0);
    border-radius: 10px;
    background: var(--sfsp-bg-color, #fff);
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.05);
    transition: box-shadow .2s;
}
.sfsp-style-accordion-boxed .sfsp-faq-item:hover { box-shadow: 0 4px 16px rgba(0,0,0,.1); }
.sfsp-style-accordion-boxed .sfsp-faq-trigger { padding: 16px 20px; }
.sfsp-style-accordion-boxed .sfsp-faq-trigger[aria-expanded="true"] {
    background: var(--sfsp-accent-color, #e94560);
    color: #fff;
}
.sfsp-style-accordion-boxed .sfsp-faq-trigger[aria-expanded="true"] .sfsp-faq-icon { color: #fff; }
.sfsp-style-accordion-boxed .sfsp-faq-answer-inner { padding: 14px 20px; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 4 — Gradient Glow                                     */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-gradient .sfsp-faq-list { display: flex; flex-direction: column; gap: 10px; }
.sfsp-style-accordion-gradient .sfsp-faq-item {
    border-radius: 12px;
    background: #fff;
    border: 1px solid transparent;
    background-clip: padding-box;
    box-shadow: 0 2px 8px rgba(0,0,0,.06);
    position: relative;
    overflow: hidden;
}
.sfsp-style-accordion-gradient .sfsp-faq-item::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 12px;
    padding: 1.5px;
    background: linear-gradient(135deg, var(--sfsp-accent-color, #e94560), var(--sfsp-heading-hover, #e94560));
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity .2s;
}
.sfsp-style-accordion-gradient .sfsp-faq-item:hover::before { opacity: 1; }
.sfsp-style-accordion-gradient .sfsp-faq-trigger { padding: 18px 22px; }
.sfsp-style-accordion-gradient .sfsp-faq-trigger[aria-expanded="true"] {
    background: linear-gradient(135deg, var(--sfsp-accent-color, #e94560), #f97316);
    color: #fff; border-radius: 12px 12px 0 0;
}
.sfsp-style-accordion-gradient .sfsp-faq-trigger[aria-expanded="true"] .sfsp-faq-icon { color: #fff; }
.sfsp-style-accordion-gradient .sfsp-faq-answer-inner { padding: 14px 22px 18px; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 5 — Rounded Soft                                      */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-rounded .sfsp-faq-list { display: flex; flex-direction: column; gap: 8px; }
.sfsp-style-accordion-rounded .sfsp-faq-item {
    border-radius: 50px;
    background: var(--sfsp-bg-color, #f8fafc);
    border: 1.5px solid var(--sfsp-border-color, #e2e8f0);
    overflow: hidden;
    transition: all .2s;
}
.sfsp-style-accordion-rounded .sfsp-faq-item.sfsp-expanded { border-radius: 20px; }
.sfsp-style-accordion-rounded .sfsp-faq-trigger { padding: 16px 24px; }
.sfsp-style-accordion-rounded .sfsp-faq-trigger[aria-expanded="true"] { background: rgba(16,185,129,.08); color: #065f46; border-radius: 20px 20px 0 0; }
.sfsp-style-accordion-rounded .sfsp-faq-trigger[aria-expanded="true"] .sfsp-faq-icon { color: #10b981; }
.sfsp-style-accordion-rounded .sfsp-faq-answer-inner { padding: 10px 24px 18px; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 6 — Dark Mode                                         */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-dark .sfsp-faq-section,
.sfsp-style-accordion-dark { background: #0f0f1a; border-radius: 16px; padding: 28px; }
.sfsp-style-accordion-dark .sfsp-faq-title { color: #f1f5f9; }
.sfsp-style-accordion-dark .sfsp-faq-list { display: flex; flex-direction: column; gap: 8px; }
.sfsp-style-accordion-dark .sfsp-faq-item { background: #1a1a2e; border: 1px solid rgba(255,255,255,.08); border-radius: 10px; overflow: hidden; }
.sfsp-style-accordion-dark .sfsp-faq-trigger { padding: 16px 20px; color: #e2e8f0; }
.sfsp-style-accordion-dark .sfsp-faq-trigger:hover { color: #a78bfa; }
.sfsp-style-accordion-dark .sfsp-faq-trigger[aria-expanded="true"] { background: rgba(167,139,250,.1); color: #a78bfa; }
.sfsp-style-accordion-dark .sfsp-faq-icon { color: #a78bfa; }
.sfsp-style-accordion-dark .sfsp-faq-answer-inner { padding: 10px 20px 18px; color: #94a3b8; }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 7 — Split Panel                                       */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-split .sfsp-faq-list { display: flex; flex-direction: column; gap: 12px; }
.sfsp-style-accordion-split .sfsp-faq-item { display: grid; grid-template-columns: 1fr 2fr; border: 1px solid var(--sfsp-border-color, #e2e8f0); border-radius: 12px; overflow: hidden; background: #fff; }
.sfsp-style-accordion-split .sfsp-faq-question { background: linear-gradient(135deg, #1a1a2e, #0f3460); border-right: none; }
.sfsp-style-accordion-split .sfsp-faq-trigger { color: #fff; padding: 20px; font-size: 14px; height: 100%; align-items: flex-start; padding-right: 16px; }
.sfsp-style-accordion-split .sfsp-faq-trigger:hover { color: #a78bfa; }
.sfsp-style-accordion-split .sfsp-faq-trigger[aria-expanded="true"] { color: #a78bfa; }
.sfsp-style-accordion-split .sfsp-faq-icon { display: none; }
.sfsp-style-accordion-split .sfsp-faq-answer { display: block !important; }
.sfsp-style-accordion-split .sfsp-faq-answer-inner { padding: 20px; color: var(--sfsp-answer-color, #444); }

/* ═══════════════════════════════════════════════════════════ */
/* STYLE 8 — Timeline                                          */
/* ═══════════════════════════════════════════════════════════ */
.sfsp-style-accordion-timeline .sfsp-faq-list { position: relative; padding-left: 32px; }
.sfsp-style-accordion-timeline .sfsp-faq-list::before {
    content: "";
    position: absolute;
    left: 10px; top: 8px; bottom: 8px; width: 2px;
    background: linear-gradient(to bottom, var(--sfsp-accent-color, #e94560), transparent);
}
.sfsp-style-accordion-timeline .sfsp-faq-item { position: relative; margin-bottom: 16px; }
.sfsp-style-accordion-timeline .sfsp-faq-item::before {
    content: "";
    position: absolute;
    left: -27px; top: 18px;
    width: 12px; height: 12px;
    background: var(--sfsp-accent-color, #e94560);
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px var(--sfsp-accent-color, #e94560);
}
.sfsp-style-accordion-timeline .sfsp-faq-trigger {
    background: var(--sfsp-bg-color, #fff);
    border: 1px solid var(--sfsp-border-color, #e2e8f0);
    border-radius: 10px;
    padding: 14px 18px;
    box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.sfsp-style-accordion-timeline .sfsp-faq-trigger[aria-expanded="true"] {
    border-color: var(--sfsp-accent-color, #e94560);
    border-radius: 10px 10px 0 0;
}
.sfsp-style-accordion-timeline .sfsp-faq-answer-inner {
    background: #f8fafc;
    border: 1px solid var(--sfsp-border-color, #e2e8f0);
    border-top: none;
    border-radius: 0 0 10px 10px;
    padding: 14px 18px;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 640px) {
    .sfsp-style-accordion-split .sfsp-faq-item { grid-template-columns: 1fr; }
    .sfsp-style-accordion-split .sfsp-faq-question { background: linear-gradient(135deg, #1a1a2e, #0f3460); }
    .sfsp-style-accordion-split .sfsp-faq-answer { display: none !important; }
    .sfsp-style-accordion-split .sfsp-faq-answer.sfsp-open { display: block !important; }
    .sfsp-style-accordion-split .sfsp-faq-icon { display: flex; }
}

/* ── Animations ───────────────────────────────────────────── */
.sfsp-faq-answer { overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
    .sfsp-faq-answer { animation: none; }
    .sfsp-faq-answer.sfsp-open { animation: sfsp-slide-down .25s ease forwards; }
}
@keyframes sfsp-slide-down {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: none; }
}
