/* ============================================================================
   VisionQ — Public Institutional Site
   Brand: #6366f1 (indigo) → #8b5cf6 (purple)
   ============================================================================ */

:root {
    --vq-primary: #6366f1;
    --vq-primary-dark: #4f46e5;
    --vq-secondary: #8b5cf6;
    --vq-secondary-dark: #7c3aed;
    --vq-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    --vq-gradient-soft: linear-gradient(135deg, #eef2ff 0%, #f5f3ff 100%);
    --vq-gradient-hero: linear-gradient(135deg, #4f46e5 0%, #6366f1 45%, #8b5cf6 100%);
    --vq-ink: #0f172a;
    --vq-muted: #64748b;
    --vq-light: #f8fafc;
    --vq-border: #e2e8f0;
    --vq-shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);
    --vq-shadow: 0 10px 30px -12px rgba(15, 23, 42, .15);
    --vq-shadow-lg: 0 30px 60px -20px rgba(99, 102, 241, .25);
    --vq-radius: 18px;
    --vq-radius-lg: 28px;
    --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-head: 'Poppins', 'Inter', sans-serif;
}

/* ─── Base ──────────────────────────────────────────────────────────────── */
* { scroll-behavior: smooth; }
html { scroll-padding-top: 90px; }

body {
    font-family: var(--font-body);
    color: var(--vq-ink);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, .display-1, .display-2, .display-3, .display-4 {
    font-family: var(--font-head);
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--vq-ink);
}

a { text-decoration: none; transition: color .2s, opacity .2s; }
.lead { color: var(--vq-muted); font-size: 1.15rem; line-height: 1.7; }
section { position: relative; }

/* ─── Utilities ─────────────────────────────────────────────────────────── */
.vq-gradient-bg { background: var(--vq-gradient); }
.vq-gradient-soft-bg { background: var(--vq-gradient-soft); }
.text-gradient {
    background: var(--vq-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.section-pad { padding: 6rem 0; }
.section-pad-sm { padding: 4rem 0; }
.eyebrow {
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .8rem;
    font-weight: 700;
    color: var(--vq-primary);
    margin-bottom: .9rem;
}
.section-title { font-size: clamp(1.9rem, 3.4vw, 2.8rem); line-height: 1.15; }
.text-muted-2 { color: var(--vq-muted) !important; }
.rounded-2xl { border-radius: var(--vq-radius); }
.shadow-soft { box-shadow: var(--vq-shadow); }

.btn { font-weight: 600; border-radius: 12px; padding: .72rem 1.5rem; transition: all .25s ease; }
.btn-lg { padding: .9rem 2rem; font-size: 1.05rem; }
.btn-gradient {
    background: var(--vq-gradient);
    color: #fff;
    border: none;
    box-shadow: 0 10px 24px -8px rgba(99, 102, 241, .5);
}
.btn-gradient:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 16px 32px -8px rgba(99, 102, 241, .6); }
.btn-outline-gradient {
    border: 2px solid var(--vq-primary);
    color: var(--vq-primary);
    background: transparent;
}
.btn-outline-gradient:hover { background: var(--vq-primary); color: #fff; transform: translateY(-2px); }
.btn-white { background: #fff; color: var(--vq-primary); border: none; }
.btn-white:hover { color: var(--vq-primary-dark); transform: translateY(-2px); box-shadow: 0 16px 32px -10px rgba(0,0,0,.25); }
.btn-outline-white { border: 2px solid rgba(255,255,255,.7); color: #fff; background: transparent; }
.btn-outline-white:hover { background: #fff; color: var(--vq-primary); }

.badge-pill {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem 1rem;
    border-radius: 999px;
    font-size: .85rem;
    font-weight: 600;
}
.badge-glass { background: rgba(255,255,255,.16); color: #fff; backdrop-filter: blur(6px); border: 1px solid rgba(255,255,255,.25); }
.badge-soft { background: var(--vq-gradient-soft); color: var(--vq-primary-dark); border: 1px solid #e0e7ff; }

/* ─── Navbar ────────────────────────────────────────────────────────────── */
.vq-nav {
    transition: background .3s ease, box-shadow .3s ease, padding .3s ease;
    padding: 1.1rem 0;
    background: transparent;
}
.vq-nav.solid {
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(15,23,42,.06), 0 6px 24px -16px rgba(15,23,42,.2);
    padding: .7rem 0;
}
.vq-nav .navbar-brand { font-family: var(--font-head); font-weight: 800; font-size: 1.4rem; display: flex; align-items: center; gap: .55rem; }
.vq-brand-logo {
    width: 40px; height: 40px;
    border-radius: 12px;
    background: var(--vq-gradient);
    display: grid; place-items: center;
    color: #fff; font-size: 1.15rem;
    box-shadow: 0 8px 18px -6px rgba(99,102,241,.6);
}
.vq-brand-name { color: var(--vq-ink); }
.vq-nav:not(.solid) .vq-brand-name,
.vq-nav:not(.solid).nav-light .vq-brand-name { color: #fff; }
.vq-nav .nav-link { font-weight: 600; color: var(--vq-ink); margin: 0 .35rem; position: relative; }
.vq-nav:not(.solid).nav-light .nav-link { color: rgba(255,255,255,.92); }
.vq-nav .nav-link:hover { color: var(--vq-primary); }
.vq-nav:not(.solid).nav-light .nav-link:hover { color: #fff; }
.vq-nav .nav-link::after {
    content: ''; position: absolute; left: .9rem; right: .9rem; bottom: -2px; height: 2px;
    background: var(--vq-gradient); border-radius: 2px; transform: scaleX(0); transition: transform .25s;
}
.vq-nav .nav-link:hover::after, .vq-nav .nav-link.active::after { transform: scaleX(1); }
.btn-nav-login { font-weight: 600; color: var(--vq-ink); padding: .55rem 1rem; border-radius: 10px; }
.vq-nav:not(.solid).nav-light .btn-nav-login { color: #fff; }
.btn-nav-login:hover { color: var(--vq-primary); }
.btn-nav-cta {
    background: var(--vq-gradient); color: #fff !important; padding: .6rem 1.3rem; border-radius: 11px; font-weight: 600;
    box-shadow: 0 8px 20px -8px rgba(99,102,241,.6); transition: transform .2s, box-shadow .2s;
}
.btn-nav-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -8px rgba(99,102,241,.7); }
.navbar-toggler { border: none; }
.navbar-toggler:focus { box-shadow: none; }
.vq-nav:not(.solid).nav-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255,255,255,1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ─── Hero ──────────────────────────────────────────────────────────────── */
.vq-hero {
    background: var(--vq-gradient-hero);
    color: #fff;
    padding: 11rem 0 7rem;
    position: relative;
    overflow: hidden;
}
.vq-hero::before {
    content: ''; position: absolute; inset: 0;
    background:
        radial-gradient(circle at 15% 20%, rgba(255,255,255,.18), transparent 38%),
        radial-gradient(circle at 85% 75%, rgba(139,92,246,.45), transparent 42%);
    pointer-events: none;
}
.vq-hero .container { position: relative; z-index: 2; }
.vq-hero h1 { color: #fff; font-size: clamp(2.4rem, 5vw, 4rem); line-height: 1.08; font-weight: 800; }
.vq-hero .hero-sub { color: rgba(255,255,255,.92); font-size: 1.22rem; line-height: 1.65; max-width: 560px; }
.hero-trust { color: rgba(255,255,255,.85); font-size: .92rem; }
.hero-trust i { color: #c7d2fe; }
.hero-blob {
    position: absolute; border-radius: 50%; filter: blur(60px); opacity: .5; z-index: 1;
}
.hero-blob.b1 { width: 360px; height: 360px; background: #a78bfa; top: -80px; right: -60px; }
.hero-blob.b2 { width: 300px; height: 300px; background: #818cf8; bottom: -100px; left: -80px; }
.vq-hero-wave { position: absolute; bottom: -1px; left: 0; width: 100%; line-height: 0; z-index: 2; }
.vq-hero-wave svg { width: 100%; height: 80px; display: block; }

/* ─── Hero dashboard mockup ─────────────────────────────────────────────── */
.hero-mock {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 40px 80px -30px rgba(15,23,42,.5);
    overflow: hidden;
    color: var(--vq-ink);
    transform: perspective(1600px) rotateY(-7deg) rotateX(3deg);
    transition: transform .5s ease;
}
.hero-mock:hover { transform: perspective(1600px) rotateY(0) rotateX(0); }
.mock-bar { background: #f1f5f9; padding: .65rem .9rem; display: flex; align-items: center; gap: .4rem; border-bottom: 1px solid var(--vq-border); }
.mock-dot { width: 11px; height: 11px; border-radius: 50%; }
.mock-dot.r { background: #f87171; } .mock-dot.y { background: #fbbf24; } .mock-dot.g { background: #34d399; }
.mock-body { padding: 1.2rem; }
.mock-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1rem; }
.mock-kpi { background: var(--vq-light); border: 1px solid var(--vq-border); border-radius: 12px; padding: .8rem; }
.mock-kpi .kpi-label { font-size: .68rem; color: var(--vq-muted); text-transform: uppercase; letter-spacing: .05em; }
.mock-kpi .kpi-value { font-size: 1.45rem; font-weight: 800; font-family: var(--font-head); }
.mock-kpi .kpi-trend { font-size: .7rem; font-weight: 600; }
.mock-kpi .kpi-trend.up { color: #16a34a; } .mock-kpi .kpi-trend.down { color: #dc2626; }
.mock-chart { background: var(--vq-light); border: 1px solid var(--vq-border); border-radius: 12px; padding: 1rem; }
.mock-chart-title { font-size: .8rem; font-weight: 700; margin-bottom: .8rem; display: flex; justify-content: space-between; }
.mock-bars { display: flex; align-items: flex-end; gap: .5rem; height: 110px; }
.mock-bars .bar { flex: 1; border-radius: 6px 6px 0 0; background: var(--vq-gradient); opacity: .85; }
.mock-float {
    position: absolute; background: #fff; border-radius: 14px; padding: .7rem .9rem;
    box-shadow: var(--vq-shadow); display: flex; align-items: center; gap: .6rem; font-size: .8rem; font-weight: 600;
    z-index: 5;
}
.mock-float .mf-icon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; color: #fff; }
.mock-float.f1 { top: 8%; left: -7%; }
.mock-float.f2 { bottom: 10%; right: -7%; }

/* ─── Trust bar ─────────────────────────────────────────────────────────── */
.trust-bar { padding: 2.6rem 0; border-bottom: 1px solid var(--vq-border); }
.trust-label { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 700; color: var(--vq-muted); }
.trust-logo { color: #94a3b8; font-weight: 800; font-size: 1.25rem; display: inline-flex; align-items: center; gap: .45rem; opacity: .8; transition: opacity .2s, color .2s; }
.trust-logo:hover { opacity: 1; color: var(--vq-primary); }

/* ─── Stats ─────────────────────────────────────────────────────────────── */
.vq-stats { background: var(--vq-gradient); color: #fff; }
.stat-item { text-align: center; }
.stat-number { font-family: var(--font-head); font-weight: 800; font-size: clamp(2.2rem, 4vw, 3rem); line-height: 1; }
.stat-label { color: rgba(255,255,255,.88); font-weight: 500; margin-top: .4rem; }

/* ─── Module cards ──────────────────────────────────────────────────────── */
.module-card {
    background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius);
    padding: 1.7rem 1.5rem; height: 100%; transition: transform .28s ease, box-shadow .28s ease, border-color .28s;
    position: relative; overflow: hidden;
}
.module-card::after {
    content: ''; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--vq-gradient);
    transform: scaleX(0); transform-origin: left; transition: transform .3s;
}
.module-card:hover { transform: translateY(-6px); box-shadow: var(--vq-shadow-lg); border-color: transparent; }
.module-card:hover::after { transform: scaleX(1); }
.module-icon {
    width: 56px; height: 56px; border-radius: 15px; display: grid; place-items: center;
    color: #fff; font-size: 1.4rem; margin-bottom: 1.1rem;
    box-shadow: 0 10px 22px -10px rgba(99,102,241,.6);
}
.module-card h5 { font-size: 1.1rem; margin-bottom: .5rem; }
.module-card p { color: var(--vq-muted); font-size: .92rem; margin: 0; line-height: 1.6; }

/* gradient palette for icons */
.g-indigo  { background: linear-gradient(135deg,#6366f1,#818cf8); }
.g-purple  { background: linear-gradient(135deg,#8b5cf6,#a78bfa); }
.g-blue    { background: linear-gradient(135deg,#3b82f6,#60a5fa); }
.g-cyan    { background: linear-gradient(135deg,#06b6d4,#22d3ee); }
.g-teal    { background: linear-gradient(135deg,#14b8a6,#2dd4bf); }
.g-green   { background: linear-gradient(135deg,#10b981,#34d399); }
.g-amber   { background: linear-gradient(135deg,#f59e0b,#fbbf24); }
.g-orange  { background: linear-gradient(135deg,#f97316,#fb923c); }
.g-rose    { background: linear-gradient(135deg,#f43f5e,#fb7185); }
.g-pink    { background: linear-gradient(135deg,#ec4899,#f472b6); }
.g-red     { background: linear-gradient(135deg,#ef4444,#f87171); }
.g-violet  { background: linear-gradient(135deg,#7c3aed,#a855f7); }
.g-slate   { background: linear-gradient(135deg,#475569,#64748b); }
.g-emerald { background: linear-gradient(135deg,#059669,#10b981); }

/* ─── Feature highlight ─────────────────────────────────────────────────── */
.feature-row { padding: 3.5rem 0; }
.feature-visual {
    background: var(--vq-gradient-soft); border: 1px solid #e0e7ff; border-radius: var(--vq-radius-lg);
    padding: 2rem; position: relative; box-shadow: var(--vq-shadow);
}
.feature-visual .fv-card { background: #fff; border-radius: 16px; box-shadow: var(--vq-shadow-sm); padding: 1.2rem; }
.feature-check { display: flex; align-items: flex-start; gap: .7rem; margin-bottom: .8rem; }
.feature-check i { color: #22c55e; margin-top: .25rem; }
.feature-mini-icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; color: #fff; font-size: 1.3rem; margin-bottom: 1.2rem; }

/* ─── Pricing ───────────────────────────────────────────────────────────── */
.price-card {
    background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius);
    padding: 2rem 1.7rem; height: 100%; transition: transform .28s, box-shadow .28s, border-color .28s; position: relative;
}
.price-card:hover { transform: translateY(-6px); box-shadow: var(--vq-shadow-lg); }
.price-card.featured { border: 2px solid var(--vq-primary); box-shadow: var(--vq-shadow-lg); transform: scale(1.02); }
.price-card.featured:hover { transform: scale(1.02) translateY(-6px); }
.price-badge {
    position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
    background: var(--vq-gradient); color: #fff; padding: .35rem 1rem; border-radius: 999px; font-size: .78rem; font-weight: 700;
    box-shadow: 0 8px 18px -8px rgba(99,102,241,.6);
}
.price-name { font-size: 1.25rem; font-weight: 700; }
.price-amount { font-family: var(--font-head); font-weight: 800; font-size: 2.6rem; line-height: 1; }
.price-amount small { font-size: 1rem; color: var(--vq-muted); font-weight: 500; }
.price-period { color: var(--vq-muted); font-size: .9rem; }
.price-features { list-style: none; padding: 0; margin: 1.4rem 0; }
.price-features li { padding: .42rem 0; display: flex; align-items: flex-start; gap: .6rem; font-size: .93rem; color: #334155; }
.price-features li i { color: #22c55e; margin-top: .25rem; flex-shrink: 0; }
.price-features li.off { color: #94a3b8; }
.price-features li.off i { color: #cbd5e1; }

/* pricing toggle */
.pricing-toggle { display: inline-flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid var(--vq-border); border-radius: 999px; padding: .5rem 1.2rem; box-shadow: var(--vq-shadow-sm); }
.pricing-toggle .form-check-input { width: 3rem; height: 1.5rem; cursor: pointer; }
.pricing-toggle .form-check-input:checked { background-color: var(--vq-primary); border-color: var(--vq-primary); }
.toggle-label { font-weight: 600; }
.save-badge { background: #dcfce7; color: #15803d; padding: .2rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 700; }

/* comparison table */
.compare-table { border-collapse: separate; border-spacing: 0; width: 100%; }
.compare-table th, .compare-table td { padding: .9rem 1rem; text-align: center; border-bottom: 1px solid var(--vq-border); }
.compare-table th:first-child, .compare-table td:first-child { text-align: left; font-weight: 600; }
.compare-table thead th { font-family: var(--font-head); }
.compare-table thead th.hl { background: var(--vq-gradient-soft); border-radius: 12px 12px 0 0; color: var(--vq-primary-dark); }
.compare-table td .fa-check { color: #22c55e; } .compare-table td .fa-xmark { color: #cbd5e1; }

/* ─── Testimonials ──────────────────────────────────────────────────────── */
.testimonial-card {
    background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius);
    padding: 2rem; height: 100%; transition: transform .28s, box-shadow .28s; box-shadow: var(--vq-shadow-sm);
}
.testimonial-card:hover { transform: translateY(-5px); box-shadow: var(--vq-shadow); }
.testimonial-stars { color: #fbbf24; margin-bottom: 1rem; }
.testimonial-quote { color: #334155; font-size: 1.02rem; line-height: 1.7; font-style: italic; margin-bottom: 1.4rem; }
.testimonial-author { display: flex; align-items: center; gap: .85rem; }
.testimonial-avatar { width: 50px; height: 50px; border-radius: 50%; background: var(--vq-gradient); color: #fff; display: grid; place-items: center; font-weight: 700; font-family: var(--font-head); }
.testimonial-name { font-weight: 700; margin: 0; }
.testimonial-role { color: var(--vq-muted); font-size: .85rem; margin: 0; }

/* ─── FAQ ───────────────────────────────────────────────────────────────── */
.vq-accordion .accordion-item { border: 1px solid var(--vq-border); border-radius: 14px !important; margin-bottom: .85rem; overflow: hidden; }
.vq-accordion .accordion-button { font-family: var(--font-head); font-weight: 600; font-size: 1.02rem; padding: 1.2rem 1.4rem; }
.vq-accordion .accordion-button:not(.collapsed) { background: var(--vq-gradient-soft); color: var(--vq-primary-dark); box-shadow: none; }
.vq-accordion .accordion-button:focus { box-shadow: none; border-color: var(--vq-border); }
.vq-accordion .accordion-button::after { background-image: none; content: '\2b'; font-family: 'Font Awesome 6 Free'; font-weight: 900; transform: none; font-size: .9rem; }
.vq-accordion .accordion-button:not(.collapsed)::after { content: '\f068'; }
.vq-accordion .accordion-body { color: var(--vq-muted); line-height: 1.7; padding: 0 1.4rem 1.3rem; }

/* ─── CTA band ──────────────────────────────────────────────────────────── */
.vq-cta-band { background: var(--vq-gradient); color: #fff; border-radius: var(--vq-radius-lg); padding: 4rem 2rem; text-align: center; position: relative; overflow: hidden; }
.vq-cta-band::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.18), transparent 40%); }
.vq-cta-band h2 { color: #fff; position: relative; }
.vq-cta-band p, .vq-cta-band .position-relative { position: relative; }

/* ─── Page hero (inner pages) ───────────────────────────────────────────── */
.page-hero { background: var(--vq-gradient-hero); color: #fff; padding: 9.5rem 0 5rem; text-align: center; position: relative; overflow: hidden; }
.page-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.15), transparent 45%); }
.page-hero h1 { color: #fff; font-size: clamp(2.2rem, 4.5vw, 3.4rem); position: relative; }
.page-hero p { color: rgba(255,255,255,.9); position: relative; max-width: 680px; margin: 1rem auto 0; font-size: 1.15rem; }

/* ─── Module detail sections ────────────────────────────────────────────── */
.module-section { padding: 4.5rem 0; border-bottom: 1px solid #f1f5f9; }
.module-section:nth-child(even) { background: var(--vq-light); }
.module-detail-icon { width: 70px; height: 70px; border-radius: 18px; display: grid; place-items: center; color: #fff; font-size: 1.8rem; margin-bottom: 1.4rem; box-shadow: var(--vq-shadow); }
.module-feature-list { list-style: none; padding: 0; }
.module-feature-list li { padding: .5rem 0; display: flex; gap: .7rem; align-items: flex-start; color: #334155; }
.module-feature-list li i { color: var(--vq-primary); margin-top: .25rem; }
.module-screenshot { background: var(--vq-gradient-soft); border: 1px solid #e0e7ff; border-radius: var(--vq-radius-lg); padding: 1.5rem; box-shadow: var(--vq-shadow); }

/* ─── Contact ───────────────────────────────────────────────────────────── */
.contact-card { background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius); padding: 1.6rem; height: 100%; transition: transform .25s, box-shadow .25s; }
.contact-card:hover { transform: translateY(-4px); box-shadow: var(--vq-shadow); }
.contact-icon { width: 52px; height: 52px; border-radius: 14px; background: var(--vq-gradient-soft); color: var(--vq-primary); display: grid; place-items: center; font-size: 1.25rem; margin-bottom: 1rem; }
.form-control, .form-select { border-radius: 12px; padding: .75rem 1rem; border: 1px solid var(--vq-border); }
.form-control:focus, .form-select:focus { border-color: var(--vq-primary); box-shadow: 0 0 0 .2rem rgba(99,102,241,.15); }
.form-label { font-weight: 600; font-size: .92rem; }
.map-placeholder { background: var(--vq-gradient-soft); border-radius: var(--vq-radius); height: 100%; min-height: 320px; display: grid; place-items: center; color: var(--vq-primary); border: 1px solid #e0e7ff; }

/* ─── Blog ──────────────────────────────────────────────────────────────── */
.blog-card { background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius); overflow: hidden; height: 100%; transition: transform .28s, box-shadow .28s; display: flex; flex-direction: column; }
.blog-card:hover { transform: translateY(-6px); box-shadow: var(--vq-shadow-lg); }
.blog-thumb { height: 190px; background: var(--vq-gradient); display: grid; place-items: center; color: rgba(255,255,255,.85); font-size: 2.6rem; position: relative; }
.blog-card .blog-body { padding: 1.4rem; flex: 1; display: flex; flex-direction: column; }
.blog-cat { display: inline-block; background: var(--vq-gradient-soft); color: var(--vq-primary-dark); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: .3rem .7rem; border-radius: 999px; margin-bottom: .8rem; }
.blog-card h5 { font-size: 1.12rem; line-height: 1.35; margin-bottom: .6rem; }
.blog-card h5 a { color: var(--vq-ink); }
.blog-card h5 a:hover { color: var(--vq-primary); }
.blog-meta { color: var(--vq-muted); font-size: .82rem; margin-top: auto; padding-top: 1rem; display: flex; align-items: center; gap: .8rem; }
.blog-featured { background: #fff; border: 1px solid var(--vq-border); border-radius: var(--vq-radius-lg); overflow: hidden; box-shadow: var(--vq-shadow); }
.blog-featured .feat-thumb { background: var(--vq-gradient); min-height: 320px; display: grid; place-items: center; color: rgba(255,255,255,.85); font-size: 4rem; }

/* article body */
.article-body { font-size: 1.1rem; line-height: 1.85; color: #334155; }
.article-body h2 { margin: 2.2rem 0 1rem; font-size: 1.7rem; }
.article-body h3 { margin: 1.8rem 0 .8rem; font-size: 1.35rem; }
.article-body p { margin-bottom: 1.3rem; }
.article-body ul, .article-body ol { margin-bottom: 1.3rem; padding-left: 1.4rem; }
.article-body li { margin-bottom: .5rem; }
/* O editor (Quill) grava listas como <ol> com data-list; sem isto os marcadores virariam números. */
.article-body ol > li[data-list="bullet"] { list-style-type: disc; }
.article-body ol > li[data-list="ordered"] { list-style-type: decimal; }
.article-body li > .ql-ui { display: none; }
.article-body blockquote { border-left: 4px solid var(--vq-primary); padding: .5rem 0 .5rem 1.4rem; color: var(--vq-muted); font-style: italic; margin: 1.6rem 0; }
.article-body img { max-width: 100%; border-radius: 14px; margin: 1.5rem 0; }
.share-btn { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--vq-light); color: var(--vq-muted); border: 1px solid var(--vq-border); transition: all .2s; }
.share-btn:hover { background: var(--vq-gradient); color: #fff; border-color: transparent; }

/* ─── Footer ────────────────────────────────────────────────────────────── */
.vq-footer { background: #0f172a; color: #cbd5e1; padding: 4.5rem 0 2rem; }
.vq-footer .footer-brand { font-family: var(--font-head); font-weight: 800; font-size: 1.4rem; color: #fff; display: flex; align-items: center; gap: .55rem; margin-bottom: 1rem; }
.vq-footer p { color: #94a3b8; line-height: 1.7; }
.footer-col-title { color: #fff; font-weight: 700; font-size: .95rem; margin-bottom: 1.1rem; letter-spacing: .02em; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: .65rem; }
.footer-links a { color: #94a3b8; font-size: .92rem; }
.footer-links a:hover { color: #fff; }
.footer-social { width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,.08); color: #cbd5e1; display: grid; place-items: center; transition: all .25s; }
.footer-social:hover { background: var(--vq-gradient); color: #fff; transform: translateY(-3px); }
.newsletter-input { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); color: #fff; border-radius: 11px; padding: .7rem 1rem; }
.newsletter-input::placeholder { color: #64748b; }
.newsletter-input:focus { background: rgba(255,255,255,.1); border-color: var(--vq-primary); color: #fff; box-shadow: none; outline: none; }
.footer-divider { border-top: 1px solid rgba(255,255,255,.1); margin: 2.6rem 0 1.5rem; }
.footer-bottom { color: #64748b; font-size: .88rem; }

/* ─── Back to top ───────────────────────────────────────────────────────── */
.back-to-top { position: fixed; right: 1.6rem; bottom: 1.6rem; width: 48px; height: 48px; border-radius: 14px; background: var(--vq-gradient); color: #fff; display: grid; place-items: center; box-shadow: var(--vq-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(12px); transition: all .3s; z-index: 1000; }
.back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { color: #fff; transform: translateY(-3px); }

/* ─── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .vq-nav { background: rgba(255,255,255,.96); backdrop-filter: blur(14px); }
    .vq-nav:not(.solid).nav-light .vq-brand-name,
    .vq-nav:not(.solid).nav-light .nav-link,
    .vq-nav:not(.solid).nav-light .btn-nav-login { color: var(--vq-ink); }
    .vq-nav:not(.solid).nav-light .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(15,23,42,1)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
    .vq-nav .navbar-nav { padding: 1rem 0; }
    .vq-nav .nav-link::after { display: none; }
    .hero-mock { transform: none; margin-top: 3rem; }
    .mock-float { display: none; }
    .price-card.featured { transform: none; }
    .price-card.featured:hover { transform: translateY(-6px); }
    .section-pad { padding: 4rem 0; }
}
@media (max-width: 575.98px) {
    .vq-hero { padding: 9rem 0 5rem; }
    .mock-kpis { grid-template-columns: 1fr; }
    .vq-cta-band { padding: 3rem 1.2rem; }
}

/* Brand "Q" visible over the transparent hero navbar (gradient blends into purple) */
.vq-nav:not(.solid) .vq-brand-name .text-gradient {
    -webkit-text-fill-color: #fff;
    color: #fff;
    background: none;
}

/* ═══════════════════════════════════════════════════════════════
   PÁGINAS DE CONTEÚDO / LEGAIS — componentes premium
   ═══════════════════════════════════════════════════════════════ */
.content-hero{background:var(--vq-gradient-hero);color:#fff;padding:9.5rem 0 4rem;position:relative;overflow:hidden;text-align:center}
.content-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.15),transparent 45%)}
.content-hero h1{color:#fff;font-weight:800;font-size:clamp(2.2rem,4.5vw,3.4rem);margin-bottom:.6rem;position:relative}
.content-hero p{color:rgba(255,255,255,.9);font-size:1.15rem;max-width:680px;margin:1rem auto 0;position:relative}
.doc-meta{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;padding:.35rem .9rem;border-radius:100px;font-size:.82rem;font-weight:500;backdrop-filter:blur(6px)}

.legal-layout{display:grid;grid-template-columns:260px 1fr;gap:3rem;align-items:start}
@media(max-width:991px){.legal-layout{grid-template-columns:1fr;gap:1.5rem}}
.legal-toc{position:sticky;top:90px;background:#fff;border:1px solid var(--vq-border);border-radius:var(--vq-radius-lg);padding:1.25rem 1.25rem;box-shadow:var(--vq-shadow-sm)}
@media(max-width:991px){.legal-toc{position:static}}
.legal-toc-title{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--vq-muted);font-weight:700;margin-bottom:.75rem}
.legal-toc a{display:block;padding:.4rem .7rem;border-radius:8px;color:var(--vq-ink);text-decoration:none;font-size:.9rem;font-weight:500;border-left:2px solid transparent;transition:all .15s}
.legal-toc a:hover{background:var(--vq-gradient-soft);color:var(--vq-primary);border-left-color:var(--vq-primary)}

.legal-doc{max-width:760px}
.legal-doc h2{font-size:1.35rem;font-weight:700;color:var(--vq-ink);margin:2.4rem 0 .9rem;padding-top:.5rem;scroll-margin-top:90px;display:flex;gap:.6rem;align-items:baseline}
.legal-doc h2 .n{color:var(--vq-primary);font-weight:800;font-size:1rem}
.legal-doc h2:first-of-type{margin-top:0}
.legal-doc h3{font-size:1.05rem;font-weight:700;color:var(--vq-ink);margin:1.6rem 0 .6rem}
.legal-doc p,.legal-doc li{color:#475467;line-height:1.8;font-size:1rem}
.legal-doc ul{padding-left:1.1rem;margin-bottom:1rem}
.legal-doc li{margin-bottom:.4rem}
.legal-doc a{color:var(--vq-primary);font-weight:500;text-decoration:none}
.legal-doc a:hover{text-decoration:underline}
.legal-callout{background:var(--vq-gradient-soft);border:1px solid var(--vq-border);border-left:4px solid var(--vq-primary);border-radius:12px;padding:1rem 1.25rem;margin:1.4rem 0;color:#475467;font-size:.95rem}
.legal-callout i{color:var(--vq-primary)}

/* Cards de valores / benefícios */
.value-card{background:#fff;border:1px solid var(--vq-border);border-radius:var(--vq-radius-lg);padding:1.9rem;height:100%;transition:transform .2s,box-shadow .2s}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--vq-shadow-lg)}
.value-card h5{font-weight:700;margin:.9rem 0 .5rem}
.value-card p{color:var(--vq-muted);font-size:.95rem;margin:0;line-height:1.7}

/* Timeline */
.vq-timeline{position:relative;padding-left:2rem;margin-top:1rem}
.vq-timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--vq-primary),transparent)}
.vq-timeline-item{position:relative;padding-bottom:1.6rem}
.vq-timeline-item::before{content:"";position:absolute;left:-2rem;top:4px;width:16px;height:16px;border-radius:50%;background:var(--vq-primary);box-shadow:0 0 0 4px var(--vq-gradient-soft,#eef)}
.vq-timeline-item h6{font-weight:700;margin-bottom:.2rem}
.vq-timeline-item p{color:var(--vq-muted);font-size:.92rem;margin:0}

/* Status do sistema */
.status-banner{display:flex;align-items:center;gap:.8rem;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;border-radius:var(--vq-radius-lg);padding:1.1rem 1.4rem;font-weight:600}
.status-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border:1px solid var(--vq-border);border-radius:12px;margin-bottom:.6rem;background:#fff}
.status-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:#059669}
.status-pill .dot{width:9px;height:9px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.18)}

/* CTA final */
.content-cta{background:var(--vq-gradient);border-radius:var(--vq-radius-lg);padding:2.6rem;text-align:center;color:#fff;box-shadow:var(--vq-shadow-lg)}
.content-cta h3{font-weight:800;margin-bottom:.5rem}
.content-cta p{color:rgba(255,255,255,.85);margin-bottom:1.2rem}
.content-cta .btn-light{font-weight:600;border-radius:100px;padding:.7rem 1.8rem}

/* ─── Cards de vídeo (Tutoriais) ─────────────────────────────────────────── */
.video-card{background:#fff;border:1px solid var(--vq-border);border-radius:var(--vq-radius-lg);overflow:hidden;height:100%;transition:transform .2s,box-shadow .2s}
.video-card:hover{transform:translateY(-6px);box-shadow:var(--vq-shadow-lg)}
.video-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center;color:#fff;overflow:hidden}
.video-thumb i.thumb-bg{position:absolute;font-size:4.5rem;opacity:.18;right:-.3rem;bottom:-.5rem}
.video-thumb .video-play{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--vq-primary);display:grid;place-items:center;font-size:1.4rem;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform .2s;position:relative;z-index:2}
.video-card a:hover .video-play{transform:scale(1.1)}
.video-thumb .video-soon{position:absolute;top:.7rem;right:.7rem;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:100px;z-index:2}
.video-body{padding:1.1rem 1.25rem}
.video-body h5{font-weight:700;font-size:1.02rem;margin-bottom:.3rem}
.video-body p{color:var(--vq-muted);font-size:.9rem;margin:0;line-height:1.6}
.video-meta{display:flex;align-items:center;gap:.4rem;color:var(--vq-muted);font-size:.8rem;margin-top:.6rem}

/* ═══════════════════════════════════════════════════════════════
   TUTORIAIS — mockups animados (puro CSS, em loop)
   ═══════════════════════════════════════════════════════════════ */
.tut-row{align-items:center}
.tut-window{background:#fff;border-radius:18px;box-shadow:var(--vq-shadow-lg);border:1px solid var(--vq-border);overflow:hidden;width:100%;max-width:540px;margin:auto}
.tut-bar{display:flex;align-items:center;gap:.4rem;padding:.6rem .9rem;background:#f8fafc;border-bottom:1px solid var(--vq-border)}
.tut-dot{width:10px;height:10px;border-radius:50%}
.tut-dot.r{background:#fb7185}.tut-dot.y{background:#fbbf24}.tut-dot.g{background:#34d399}
.tut-url{margin-left:.5rem;font-size:.7rem;color:var(--vq-muted);background:#fff;border:1px solid var(--vq-border);border-radius:6px;padding:.12rem .6rem;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tut-screen{padding:1.15rem;min-height:248px;background:linear-gradient(180deg,#fff,#fbfcff);position:relative}
.tut-screen h6{font-size:.82rem;font-weight:700;color:var(--vq-ink);margin-bottom:.85rem;display:flex;align-items:center;gap:.4rem}
.tut-screen h6 .ic{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:.72rem}
.tut-explain .badge-soft{margin-bottom:1rem}
.tut-explain h3{font-weight:800;margin-bottom:.6rem}
.tut-explain p{color:var(--vq-muted);font-size:1.02rem;line-height:1.7;margin-bottom:1rem}
.tut-explain li{display:flex;gap:.6rem;align-items:flex-start;color:#475467;margin-bottom:.5rem;font-size:.96rem}
.tut-explain li i{color:#10b981;margin-top:.25rem}

/* linhas/listas genéricas */
.tut-line{height:11px;border-radius:6px;background:#eef2f7}
.tut-rowi{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;border:1px solid #eef2f7;border-radius:10px;margin-bottom:.5rem;background:#fff;opacity:0;animation:tutRise 6s ease-in-out infinite}
.tut-rowi .ico{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:#fff;font-size:.7rem;flex:none}
@keyframes tutRise{0%,4%{opacity:0;transform:translateY(8px)}12%,92%{opacity:1;transform:none}100%{opacity:0}}

/* selo / stamp */
.tut-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg) scale(.4);border:3px solid #10b981;color:#10b981;font-weight:800;letter-spacing:.06em;padding:.3rem 1rem;border-radius:10px;font-size:1.1rem;opacity:0;animation:tutStamp 5s ease-in-out infinite}
@keyframes tutStamp{0%,40%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(.4)}55%,88%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(1.1)}}

/* checklist */
.tut-check{display:flex;align-items:center;gap:.6rem;padding:.5rem .2rem;font-size:.82rem;color:#475467}
.tut-check .box{width:20px;height:20px;border-radius:6px;border:2px solid #cbd5e1;display:grid;place-items:center;color:#fff;font-size:.62rem;flex:none;animation:tutBox 5s ease-in-out infinite}
@keyframes tutBox{0%,30%{background:#fff;border-color:#cbd5e1}45%,100%{background:#10b981;border-color:#10b981}}
.tut-check .box i{opacity:0;animation:tutBoxi 5s ease-in-out infinite}
@keyframes tutBoxi{0%,35%{opacity:0}48%,100%{opacity:1}}

/* barras (gráfico) */
.tut-bars{display:flex;align-items:flex-end;gap:.55rem;height:130px;padding-top:.5rem}
.tut-barcol{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:.3rem}
.tut-barv{width:100%;border-radius:7px 7px 0 0;background:var(--vq-gradient);height:8%;animation:tutGrow 4.5s ease-in-out infinite}
@keyframes tutGrow{0%{height:8%}18%{height:var(--h,60%)}82%{height:var(--h,60%)}100%{height:8%}}
.tut-barx{font-size:.6rem;color:var(--vq-muted)}

/* kanban (NCs) */
.tut-kan{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;position:relative}
.tut-kancol{background:#f8fafc;border:1px dashed #e2e8f0;border-radius:10px;min-height:140px;padding:.45rem}
.tut-kantitle{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--vq-muted);margin-bottom:.4rem;text-align:center}
.tut-kancard{position:absolute;top:34px;width:27%;left:4%;background:#fff;border:1px solid var(--vq-border);border-left:3px solid #6366f1;border-radius:8px;padding:.5rem;box-shadow:var(--vq-shadow-sm);animation:tutFlow 6s ease-in-out infinite}
.tut-kancard .t{font-size:.66rem;font-weight:700;color:var(--vq-ink)}
.tut-kancard .s{font-size:.58rem;margin-top:.2rem}
@keyframes tutFlow{0%,12%{left:4%}33%,45%{left:36.5%}66%,92%{left:69%}100%{left:4%}}

/* estrelas (fornecedores) */
.tut-stars{display:flex;gap:.3rem;font-size:1.35rem;color:#e2e8f0}
.tut-stars i{animation:tutStar 4.5s ease-in-out infinite}
@keyframes tutStar{0%,10%{color:#e2e8f0;transform:scale(.8)}25%,90%{color:#fbbf24;transform:scale(1)}100%{color:#e2e8f0}}

/* anel de progresso (treinamentos / score) */
.tut-ring{width:120px;height:120px;margin:.4rem auto}
.tut-ring circle{fill:none;stroke-width:11;stroke-linecap:round}
.tut-ring .bg{stroke:#eef2f7}
.tut-ring .fg{stroke:url(#tutgrad);stroke-dasharray:314;stroke-dashoffset:314;transform:rotate(-90deg);transform-origin:50% 50%;animation:tutRing 5s ease-in-out infinite}
@keyframes tutRing{0%,8%{stroke-dashoffset:314}55%,90%{stroke-dashoffset:30}100%{stroke-dashoffset:314}}
.tut-ringlabel{font-weight:800;font-size:1.3rem;fill:var(--vq-ink)}

/* barra de progresso (setup) */
.tut-prog{height:9px;border-radius:6px;background:#eef2f7;overflow:hidden;margin-top:.3rem}
.tut-prog span{display:block;height:100%;width:0;background:var(--vq-gradient);border-radius:6px;animation:tutProg 5s ease-in-out infinite}
@keyframes tutProg{0%,8%{width:8%}55%,90%{width:100%}100%{width:8%}}

/* badge de versão (documentos) */
.tut-ver{display:inline-flex;align-items:center;gap:.3rem;font-size:.6rem;font-weight:700;color:#6366f1;background:#eef2ff;border-radius:100px;padding:.1rem .5rem}

@media (max-width:991px){.tut-window{max-width:480px}}
@media (prefers-reduced-motion: reduce){
  .tut-rowi,.tut-stamp,.tut-box,.tut-barv,.tut-kancard,.tut-stars i,.tut-ring .fg,.tut-prog span,.tut-check .box,.tut-check .box i{animation:none!important;opacity:1!important}
  .tut-rowi{opacity:1}.tut-prog span{width:100%}.tut-ring .fg{stroke-dashoffset:40}
}
