/* ================================================================
   home-faqs.css  ·  Aura Design System — FAQs Page
   ================================================================ */

/* ── Hero ────────────────────────────────────────────────────── */
.faq-hero {
    position: relative;
    padding: 5.5rem 0 4rem;
    background: var(--aura-bg);
    overflow: hidden;
    text-align: center;
}
.faq-hero-title {
    font-size: clamp(2rem, 5vw, 3rem) !important;
    margin-bottom: 1.25rem;
}
.faq-orb-1 {
    width: 560px; height: 560px;
    background: radial-gradient(circle, rgba(99,102,241,.3) 0%, transparent 70%);
    top: -190px; left: -100px; filter: blur(88px);
}
.faq-orb-2 {
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(167,139,250,.2) 0%, transparent 70%);
    top: 0; right: -80px; filter: blur(80px);
}

/* ── Search ──────────────────────────────────────────────────── */
.faq-search-wrap {
    position: relative;
    max-width: 520px;
    display: flex;
    align-items: center;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    padding: .6rem .75rem .6rem 1.25rem;
    transition: border-color .2s, box-shadow .2s;
}
.faq-search-wrap:focus-within {
    border-color: rgba(99,102,241,.5);
    box-shadow: 0 0 0 3px rgba(99,102,241,.15);
}
.faq-search-icon {
    color: var(--aura-muted);
    font-size: 1rem;
    flex-shrink: 0;
    margin-right: .65rem;
}
.faq-search-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--aura-text);
    font-size: .95rem;
    min-width: 0;
    min-height: 38px;
}
.faq-search-input::placeholder { color: var(--aura-muted); }

.faq-stat-row {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    align-items: center;
}

/* ── Sidebar ─────────────────────────────────────────────────── */
.faq-sidebar-card {
    background: var(--aura-surface);
    border: 1px solid var(--aura-border);
    border-radius: var(--aura-radius);
    overflow: hidden;
}
.faq-sidebar-sticky {
    position: sticky;
    top: 100px;
}
.faq-sidebar-header {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.1rem;
    border-bottom: 1px solid var(--aura-border);
    background: rgba(255,255,255,.02);
}
.faq-sidebar-title {
    font-size: .875rem;
    font-weight: 700;
    color: var(--aura-text);
}
.faq-cat-list {
    display: flex;
    flex-direction: column;
}
.faq-cat-item {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .7rem 1.1rem;
    border-bottom: 1px solid var(--aura-border);
    text-decoration: none;
    color: var(--aura-muted);
    font-size: .84rem;
    transition: background .18s, color .18s;
}
.faq-cat-item:last-child { border-bottom: none; }
.faq-cat-item:hover {
    background: rgba(255,255,255,.03);
    color: var(--aura-text);
}
.faq-cat-item.active {
    background: rgba(99,102,241,.08);
    color: #a5b4fc;
}
.faq-cat-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    opacity: .8;
}
.faq-cat-name { flex: 1; }
.faq-cat-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 .4rem;
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    font-size: .7rem;
    font-weight: 700;
    color: var(--aura-muted);
}
.faq-cat-item.active .faq-cat-count {
    background: rgba(99,102,241,.2);
    color: #a5b4fc;
}

/* Contact card */
.faq-contact-card {
    position: relative;
    background: linear-gradient(135deg, rgba(99,102,241,.12), rgba(167,139,250,.08));
    border: 1px solid rgba(99,102,241,.22);
    border-radius: var(--aura-radius);
    padding: 1.75rem 1.25rem;
    overflow: hidden;
    text-align: center;
}
.faq-contact-orb {
    position: absolute;
    width: 220px; height: 220px;
    background: radial-gradient(circle, rgba(99,102,241,.2) 0%, transparent 70%);
    top: -60px; right: -50px;
    filter: blur(40px);
    pointer-events: none;
}
.faq-contact-title {
    font-size: .95rem;
    font-weight: 700;
    color: var(--aura-text);
    margin-bottom: .4rem;
}
.faq-contact-sub {
    font-size: .8rem;
    color: var(--aura-muted);
    line-height: 1.6;
    margin-bottom: 1.1rem;
}

/* ── FAQ Group ───────────────────────────────────────────────── */
.faq-group-header {
    display: flex;
    align-items: center;
    gap: .9rem;
}
.faq-group-dot {
    width: 4px;
    height: 36px;
    border-radius: 999px;
    flex-shrink: 0;
}
.faq-group-label {
    font-size: .95rem;
    font-weight: 700;
    color: var(--aura-text);
    margin-bottom: .15rem;
}
.faq-group-count {
    font-size: .75rem;
    color: var(--aura-muted);
}

/* ── Accordion ───────────────────────────────────────────────── */
.faq-accordion {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.faq-accordion-item {
    background: var(--aura-surface);
    border: 1px solid var(--aura-border);
    border-radius: var(--aura-radius-sm);
    overflow: hidden;
    transition: border-color .2s;
}
.faq-accordion-item:has(.faq-accordion-btn:not(.collapsed)) {
    border-color: rgba(99,102,241,.35);
}
.faq-accordion-header { margin: 0; }
.faq-accordion-btn {
    display: flex;
    align-items: center;
    gap: .85rem;
    width: 100%;
    background: transparent;
    border: none;
    padding: 1rem 1.25rem;
    color: var(--aura-text);
    font-size: .9rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background .18s;
    min-height: 52px;
}
.faq-accordion-btn:hover { background: rgba(255,255,255,.03); }
.faq-accordion-btn:not(.collapsed) {
    background: rgba(99,102,241,.07);
    color: #a5b4fc;
}
.faq-accordion-btn:focus-visible {
    outline: 2px solid rgba(99,102,241,.5);
    outline-offset: -2px;
}
.faq-q-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px; height: 24px;
    border-radius: 6px;
    background: rgba(99,102,241,.12);
    border: 1px solid rgba(99,102,241,.2);
    font-size: .72rem;
    font-weight: 800;
    color: rgba(99,102,241,.8);
    flex-shrink: 0;
}
.faq-accordion-btn:not(.collapsed) .faq-q-num {
    background: rgba(99,102,241,.25);
    color: #a5b4fc;
    border-color: rgba(99,102,241,.4);
}
.faq-question { flex: 1; line-height: 1.4; }
.faq-chevron {
    font-size: .8rem;
    color: var(--aura-muted);
    flex-shrink: 0;
    transition: transform .25s ease;
}
.faq-accordion-btn:not(.collapsed) .faq-chevron {
    transform: rotate(-180deg);
    color: #a5b4fc;
}
.faq-accordion-body {
    padding: .5rem 1.25rem 1.25rem calc(1.25rem + 24px + .85rem);
    font-size: .875rem;
    color: var(--aura-muted);
    line-height: 1.75;
    border-top: 1px solid var(--aura-border);
}
.faq-answer ul,
.faq-answer ol { margin-bottom: .5rem; padding-left: 1.25rem; }
.faq-answer li { margin-bottom: .3rem; }
.faq-answer code {
    background: rgba(99,102,241,.12);
    border: 1px solid rgba(99,102,241,.2);
    color: #a5b4fc;
    padding: .1rem .35rem;
    border-radius: 4px;
    font-size: .88em;
}
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer a { color: #818cf8; text-decoration: underline; }
.faq-answer a:hover { color: #a5b4fc; }

/* Category icon coloring via CSS variable */
.home-faqs-category-icon { color: var(--category-color, #6366f1); }

/* ── Empty State ──────────────────────────────────────────────── */
.faq-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 5rem 2rem;
}
.faq-empty-title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--aura-text);
    margin-bottom: .5rem;
}
.faq-empty-sub {
    font-size: .875rem;
    color: var(--aura-muted);
    margin-bottom: 1.5rem;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .faq-hero { padding: 3.5rem 0 2.75rem; }
    .faq-sidebar-sticky { position: static; }
}
@media (max-width: 767.98px) {
    .faq-hero-title { font-size: 1.875rem !important; }
    .faq-search-wrap { max-width: 100%; }
    .faq-accordion-body { padding-left: 1.25rem; }
}
@media (max-width: 575.98px) {
    .faq-hero { padding: 2.75rem 0 2rem; }
    .faq-stat-row { justify-content: center; }
}
