/* Landing + auth pages */

.public-nav {
    display: flex; align-items: center; gap: 14px;
    padding: 18px 40px; position: sticky; top: 0; z-index: 30;
    background: var(--glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--glass-border);
}

.public-footer {
    text-align: center; padding: 40px 20px; color: var(--text-muted); font-size: .85rem;
    border-top: 1px solid var(--glass-border); margin-top: 60px;
}

/* ---- Hero ---- */
.hero { max-width: 1200px; margin: 0 auto; padding: 80px 40px 40px; text-align: center; }
.hero .eyebrow {
    display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border-radius: 999px;
    background: rgba(99,102,241,.14); border: 1px solid rgba(99,102,241,.3);
    color: #a5b4fc; font-size: .8rem; font-weight: 600; margin-bottom: 26px;
}
.hero .pulse-dot { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52,211,153,.7); animation: pulse 1.8s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(52,211,153,0); } 100% { box-shadow: 0 0 0 0 rgba(52,211,153,0); } }
.hero h1 { font-size: clamp(2.4rem, 6vw, 4.2rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin: 0 0 20px; }
.hero p.lead { font-size: 1.2rem; color: var(--text-muted); max-width: 720px; margin: 0 auto 34px; }
.hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.btn-lg { padding: 15px 30px; font-size: 1rem; }

/* AI orb animation */
.ai-orb-wrap { margin: 56px auto 0; max-width: 880px; position: relative; }
.ai-orb {
    width: 180px; height: 180px; margin: 0 auto; border-radius: 50%;
    background: var(--grad-primary); filter: blur(2px);
    box-shadow: 0 0 80px rgba(99,102,241,.6), inset 0 0 60px rgba(255,255,255,.25);
    animation: float 5s ease-in-out infinite;
    position: relative;
}
.ai-orb::before, .ai-orb::after {
    content: ""; position: absolute; inset: -22px; border-radius: 50%;
    border: 1px solid rgba(139,92,246,.4); animation: spin 9s linear infinite;
}
.ai-orb::after { inset: -44px; border-color: rgba(6,182,212,.25); animation-duration: 14s; animation-direction: reverse; }
@keyframes float { 50% { transform: translateY(-16px); } }
@keyframes spin { to { transform: rotate(360deg); } }

/* ---- Stats strip ---- */
.stats-strip { max-width: 1100px; margin: 60px auto; padding: 0 40px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.stat-pill { padding: 26px; text-align: center; }
.stat-pill .num { font-size: 2.4rem; font-weight: 800; letter-spacing: -.02em; }
.stat-pill .cap { color: var(--text-muted); font-size: .9rem; margin-top: 4px; }

/* ---- Section ---- */
.section { max-width: 1200px; margin: 0 auto; padding: 60px 40px; }
.section-head { text-align: center; margin-bottom: 44px; }
.section-head h2 { font-size: 2.2rem; font-weight: 800; letter-spacing: -.02em; margin: 0 0 12px; }
.section-head p { color: var(--text-muted); max-width: 620px; margin: 0 auto; }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature { padding: 28px; transition: var(--transition); }
.feature:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.feature .f-ico { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; color: #fff; margin-bottom: 18px; }
.feature h3 { font-size: 1.15rem; font-weight: 700; margin: 0 0 8px; }
.feature p { color: var(--text-muted); font-size: .92rem; margin: 0; }

/* ---- Logos ---- */
.logo-row { display: flex; flex-wrap: wrap; gap: 18px; justify-content: center; align-items: center; opacity: .85; }
.logo-chip { padding: 14px 26px; font-weight: 700; color: var(--text-muted); letter-spacing: .02em; }

/* ---- Testimonials ---- */
.testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.testi { padding: 26px; }
.testi p { font-size: .96rem; line-height: 1.6; margin: 0 0 18px; }
.testi .who { display: flex; align-items: center; gap: 12px; }
.testi .who .avatar { width: 42px; height: 42px; }
.testi .who .nm { font-weight: 700; font-size: .9rem; }
.testi .who .rl { color: var(--text-faint); font-size: .78rem; }

/* ---- CTA ---- */
.cta { max-width: 1000px; margin: 40px auto 0; padding: 56px; text-align: center; background: var(--grad-primary); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); }
.cta h2 { color: #fff; font-size: 2rem; font-weight: 800; margin: 0 0 14px; }
.cta p { color: rgba(255,255,255,.9); margin: 0 0 26px; }
.cta .btn { background: #fff; color: #4f46e5; }
.cta .btn:hover { background: #f1f5ff; }

/* ---- Auth ---- */
.auth-wrap { min-height: calc(100vh - 160px); display: grid; place-items: center; padding: 40px 20px; }
.auth-card { width: 100%; max-width: 430px; padding: 40px; }
.auth-card .auth-logo { width: 56px; height: 56px; border-radius: 16px; background: var(--grad-primary); display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 1.4rem; margin: 0 auto 20px; box-shadow: 0 10px 26px rgba(99,102,241,.45); }
.auth-card h2 { text-align: center; font-size: 1.6rem; font-weight: 800; margin: 0 0 6px; }
.auth-card .sub { text-align: center; color: var(--text-muted); margin-bottom: 28px; font-size: .92rem; }
.auth-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.auth-link { color: #a5b4fc; font-size: .86rem; font-weight: 600; }
.demo-creds { margin-top: 24px; padding: 16px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--glass-border); font-size: .8rem; color: var(--text-muted); }
.demo-creds b { color: var(--text); }
.demo-creds .crow { display: flex; justify-content: space-between; padding: 3px 0; cursor: pointer; }
.demo-creds .crow:hover { color: var(--text); }

@media (max-width: 900px) {
    .stats-strip { grid-template-columns: repeat(2, 1fr); }
    .feature-grid, .testi-grid { grid-template-columns: 1fr; }
    .public-nav, .hero, .section { padding-left: 22px; padding-right: 22px; }
}
