/* ============================================================
   NOVA THEME  — Public (pre-login) + Authenticated UI styles
   ============================================================ */

/* ---- CSS Variables ---- */
:root {
  --nv-bg:          var(--bg, #07071a);
  --nv-surface:     var(--surface, #0d0d24);
  --nv-card:        var(--card, #12122a);
  --nv-card-hover:  var(--card-2, #181838);
  --nv-purple:      #7c3aed;
  --nv-purple-l:    #9d5cf6;
  --nv-purple-d:    #5b21b6;
  --nv-indigo:      #4f46e5;
  --nv-glow:        rgba(124,58,237,0.35);
  --nv-glow-sm:     rgba(124,58,237,0.15);
  --nv-text:        var(--text, #f0f0ff);
  --nv-muted:       var(--muted, #8892b0);
  --nv-border:      var(--border, rgba(124,58,237,0.18));
  --nv-radius:      14px;
  --nv-radius-sm:   8px;
  --nv-radius-lg:   24px;
  --nv-transition:  0.25s cubic-bezier(.4,0,.2,1);
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

body.nova-public {
  background: var(--nv-bg);
  color: var(--nv-text);
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  line-height: 1.6;
  overflow-x: hidden;
}

img { max-width: 100%; }
a { text-decoration: none; color: var(--nv-purple-l); transition: color var(--nv-transition); }
a:hover { color: #fff; }

/* ============================================================
   NAVBAR
   ============================================================ */
.nv-navbar {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: rgba(7,7,26,0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--nv-border);
  padding: 0.7rem 0;
}
.nv-navbar .container-fluid { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:0 2rem; }
.nv-brand { display:flex; align-items:center; gap:.5rem; font-weight:800; font-size:1.3rem; color:#fff; }
.nv-brand img { height:38px; object-fit:contain; }

/* Collapsible group: nav links + login/signup buttons travel together */
.nv-nav-collapse { display:flex; align-items:center; gap:2rem; }

.nv-nav-links { display:flex; align-items:center; gap:.25rem; list-style:none; }
.nv-nav-links a { color:var(--nv-muted); font-size:.9rem; font-weight:500; padding:.45rem .85rem; border-radius:6px; transition:all var(--nv-transition); }
.nv-nav-links a:hover, .nv-nav-links a.active { color:#fff; background:var(--nv-glow-sm); }

.nv-nav-actions { display:flex; align-items:center; gap:.6rem; }
.nv-btn { display:inline-flex; align-items:center; justify-content:center; gap:.35rem; padding:.5rem 1.2rem; border-radius:8px; font-size:.88rem; font-weight:600; border:none; cursor:pointer; transition:all var(--nv-transition); }
.nv-btn-ghost { background:transparent; color:var(--nv-text); border:1px solid var(--nv-border); }
.nv-btn-ghost:hover { border-color:var(--nv-purple-l); color:var(--nv-purple-l); background:var(--nv-glow-sm); }
.nv-btn-primary { background:linear-gradient(135deg,var(--nv-purple),var(--nv-indigo)); color:#fff; box-shadow:0 0 18px var(--nv-glow); }
.nv-btn-primary:hover { transform:translateY(-1px); box-shadow:0 4px 28px var(--nv-glow); filter:brightness(1.1); }
.nv-btn-lg { padding:.75rem 2rem; font-size:1rem; }

/* Hamburger (mobile) — animates into an X when open */
.nv-hamburger { display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; cursor:pointer; padding:.3rem; border:none; background:transparent; flex-shrink:0; }
.nv-hamburger span { display:block; width:22px; height:2px; background:var(--nv-text); border-radius:2px; transition:transform .3s, opacity .3s; }
.nv-hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nv-hamburger.open span:nth-child(2) { opacity:0; }
.nv-hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

@media (max-width:900px) {
  .nv-hamburger { display:flex; }

  .nv-nav-collapse {
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    background:var(--nv-surface);
    border-bottom:1px solid var(--nv-border);
    box-shadow:0 16px 32px rgba(0,0,0,.35);
    flex-direction:column;
    align-items:center;
    text-align:center;
    gap:.25rem;
    padding:1.25rem 1.5rem 1.5rem;
  }
  .nv-nav-collapse.open { display:flex; }

  .nv-nav-links { flex-direction:column; align-items:center; width:100%; gap:.15rem; }
  .nv-nav-links a { display:block; width:100%; padding:.8rem 1rem; font-size:1rem; }

  .nv-nav-actions {
    flex-direction:column;
    align-items:stretch;
    width:100%;
    max-width:320px;
    gap:.65rem;
    margin-top:.75rem;
    padding-top:1rem;
    border-top:1px solid var(--nv-border);
  }
  .nv-nav-actions .nv-btn { width:100%; padding:.7rem; font-size:.92rem; }
}
@media (max-width:480px) {
  .nv-navbar .container-fluid { padding:0 1rem; }
  .nv-brand { font-size:1.1rem; }
  .nv-nav-collapse { padding:1rem 1.25rem 1.25rem; }
}

/* ============================================================
   BLOB DECORATIONS
   ============================================================ */
.nv-blob {
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  pointer-events:none;
  z-index:0;
}
.nv-blob-1 { width:520px; height:520px; background:radial-gradient(circle,rgba(124,58,237,.45),transparent 70%); }
.nv-blob-2 { width:380px; height:380px; background:radial-gradient(circle,rgba(79,70,229,.4),transparent 70%); }
.nv-blob-3 { width:300px; height:300px; background:radial-gradient(circle,rgba(168,85,247,.3),transparent 70%); }

/* ============================================================
   SECTION UTILITIES
   ============================================================ */
.nv-section { position:relative; padding:5rem 0; overflow:hidden; }
.nv-section-sm { padding:3rem 0; }
.nv-section-dark { background:var(--nv-surface); }
.nv-section-darker { background:var(--nv-card); }

.nv-label {
  display:inline-block;
  background:var(--nv-glow-sm);
  border:1px solid var(--nv-border);
  color:var(--nv-purple-l);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.3rem .85rem;
  border-radius:99px;
  margin-bottom:1rem;
}
.nv-heading { font-size:clamp(1.75rem,4vw,2.8rem); font-weight:800; line-height:1.2; }
.nv-subheading { color:var(--nv-muted); font-size:1.05rem; line-height:1.7; margin-top:.75rem; }
.nv-text-center { text-align:center; }
.nv-text-gradient {
  background:linear-gradient(135deg,#c084fc,#818cf8,#38bdf8);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.nv-container { max-width:1200px; margin:0 auto; padding:0 1.5rem; }
.nv-row { display:flex; flex-wrap:wrap; gap:1.5rem; }
.nv-col-4 { flex:1 1 220px; }
.nv-col-3 { flex:1 1 180px; }

.nv-divider { width:60px; height:3px; background:linear-gradient(90deg,var(--nv-purple),var(--nv-indigo)); border-radius:3px; margin:.75rem auto 0; }

/* ============================================================
   CARDS
   ============================================================ */
.nv-card {
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius);
  padding:1.75rem;
  transition:all var(--nv-transition);
  position:relative;
  overflow:hidden;
}
.nv-card::before {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:2px;
  background:linear-gradient(90deg,var(--nv-purple),var(--nv-indigo));
  opacity:0;
  transition:opacity var(--nv-transition);
}
.nv-card:hover { transform:translateY(-4px); border-color:rgba(124,58,237,.4); box-shadow:0 12px 40px rgba(0,0,0,.4),0 0 0 1px rgba(124,58,237,.1); }
.nv-card:hover::before { opacity:1; }

.nv-icon-wrap {
  width:52px; height:52px;
  background:var(--nv-glow-sm);
  border:1px solid var(--nv-border);
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem;
  margin-bottom:1rem;
  color:var(--nv-purple-l);
}

/* ============================================================
   HERO
   ============================================================ */
.nv-hero {
  min-height:92vh;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  padding:4rem 0;
  background:var(--nv-bg);
}
.nv-hero-grid,
.nv-auth-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:3rem;
}
.nv-hero-badge {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  background:var(--nv-glow-sm);
  border:1px solid var(--nv-border);
  color:var(--nv-purple-l);
  padding:.35rem 1rem;
  border-radius:99px;
  font-size:.82rem;
  font-weight:600;
  margin-bottom:1.25rem;
  animation:pulse-border 2.5s ease-in-out infinite;
}
@keyframes pulse-border {
  0%,100% { box-shadow:0 0 0 0 var(--nv-glow-sm); }
  50%      { box-shadow:0 0 0 6px transparent; }
}
.nv-hero h1 {
  font-size:clamp(2rem,5vw,3.6rem);
  font-weight:900;
  line-height:1.1;
  margin-bottom:1.25rem;
}
.nv-hero p { font-size:1.1rem; color:var(--nv-muted); max-width:520px; margin-bottom:2rem; line-height:1.75; }
.nv-hero-actions { display:flex; gap:1rem; flex-wrap:nowrap; }
.nv-hero-actions .nv-btn { flex:1 1 0; white-space:nowrap; }

.nv-hero-stats {
  display:flex;
  gap:2.5rem;
  margin-top:2.5rem;
  padding-top:1.5rem;
  border-top:1px solid var(--nv-border);
  flex-wrap:wrap;
}
.nv-stat-item { text-align:center; }
.nv-stat-num { font-size:1.75rem; font-weight:800; color:#fff; }
.nv-stat-label { font-size:.78rem; color:var(--nv-muted); letter-spacing:.05em; text-transform:uppercase; }

/* Hero visual side */
.nv-hero-visual {
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
}
.nv-login-card {
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius-lg);
  padding:2rem;
  width:100%;
  max-width:380px;
  box-shadow:0 24px 80px rgba(0,0,0,.5),0 0 0 1px rgba(124,58,237,.1);
  position:relative;
  z-index:2;
}
.nv-login-card h3 { font-size:1.4rem; font-weight:700; margin-bottom:1.5rem; }
.nv-form-group { margin-bottom:1rem; }
.nv-form-group label { display:block; font-size:.82rem; font-weight:600; color:var(--nv-muted); margin-bottom:.4rem; letter-spacing:.03em; }
.nv-form-group input {
  width:100%;
  background:rgba(255,255,255,.05);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius-sm);
  padding:.7rem 1rem;
  color:#fff;
  font-size:.9rem;
  font-family:inherit;
  transition:all var(--nv-transition);
  outline:none;
}
.nv-form-group input::placeholder { color:rgba(255,255,255,.25); }
.nv-form-group input:focus { border-color:var(--nv-purple); box-shadow:0 0 0 3px var(--nv-glow-sm); }
.nv-form-submit { width:100%; padding:.8rem; font-size:.95rem; margin-top:.5rem; border-radius:var(--nv-radius-sm); }
.nv-form-footer { text-align:center; margin-top:1rem; font-size:.85rem; color:var(--nv-muted); }
.nv-form-footer a { color:var(--nv-purple-l); font-weight:600; }
.nv-forgot { float:right; font-size:.78rem; color:var(--nv-muted); margin-top:.3rem; }
.nv-forgot:hover { color:var(--nv-purple-l); }
.nv-remember { display:flex; align-items:center; gap:.5rem; font-size:.83rem; color:var(--nv-muted); margin-top:.25rem; }
.nv-remember input[type="checkbox"] { accent-color:var(--nv-purple); }

/* reCAPTCHA */
.g-recaptcha { margin-bottom:1rem; transform:scale(.88); transform-origin:left; }

@media (max-width:900px) {
  .nv-hero-grid, .nv-auth-grid { grid-template-columns:1fr; }
  .nv-hero { min-height:auto; padding:4rem 0 3rem; }
  .nv-hero h1 { font-size:2rem; }
  .nv-hero-visual { margin-top:2rem; }
  .nv-hero-stats { justify-content:center; }
  .nv-section { padding:3.5rem 0; }
}

/* ============================================================
   ALERT (error/success)
   ============================================================ */
.nv-alert {
  padding:.9rem 1.2rem;
  border-radius:var(--nv-radius-sm);
  font-size:.88rem;
  margin-bottom:1rem;
  display:flex;
  align-items:flex-start;
  gap:.6rem;
}
.nv-alert-error { background:rgba(239,68,68,.12); border:1px solid rgba(239,68,68,.3); color:#fca5a5; }
.nv-alert-success { background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.3); color:#86efac; }

/* ============================================================
   ABOUT SECTION
   ============================================================ */
.nv-about-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.nv-about-img {
  position:relative;
  background:linear-gradient(135deg,var(--nv-purple-d),var(--nv-indigo));
  border-radius:var(--nv-radius-lg);
  height:340px;
  display:flex; align-items:center; justify-content:center;
  font-size:4rem;
  overflow:hidden;
}
.nv-about-img::after { content:''; position:absolute; inset:0; background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.08),transparent 60%); }
@media (max-width:768px) {
  .nv-about-grid { grid-template-columns:1fr; }
  .nv-about-img { height:200px; font-size:3rem; }
}

/* ============================================================
   FEATURE / BENEFIT CARDS
   ============================================================ */
.nv-features-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.25rem;
}

/* ============================================================
   SERVICES TABS
   ============================================================ */
.nv-tabs { display:flex; gap:.5rem; flex-wrap:wrap; border-bottom:1px solid var(--nv-border); margin-bottom:2rem; padding-bottom:.25rem; }
.nv-tab {
  padding:.5rem 1.1rem;
  border-radius:6px 6px 0 0;
  font-size:.85rem;
  font-weight:600;
  color:var(--nv-muted);
  cursor:pointer;
  border:none;
  background:transparent;
  border-bottom:2px solid transparent;
  transition:all var(--nv-transition);
}
.nv-tab.active, .nv-tab:hover { color:#fff; border-bottom-color:var(--nv-purple); background:var(--nv-glow-sm); }
.nv-tab-pane { display:none; }
.nv-tab-pane.active { display:block; }
.nv-services-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; }
.nv-service-item {
  display:flex;
  align-items:center;
  gap:1rem;
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius-sm);
  padding:1rem 1.2rem;
  transition:all var(--nv-transition);
}
.nv-service-item:hover { border-color:rgba(124,58,237,.4); background:var(--nv-card-hover); }
.nv-service-icon { width:40px; height:40px; border-radius:8px; background:var(--nv-glow-sm); display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.nv-service-info .name { font-weight:600; font-size:.9rem; }
.nv-service-info .price { color:var(--nv-purple-l); font-size:.82rem; font-weight:700; }

/* ============================================================
   PROMO BANNER
   ============================================================ */
.nv-promo {
  background:linear-gradient(135deg,var(--nv-purple-d),var(--nv-indigo));
  border-radius:var(--nv-radius-lg);
  padding:3.5rem 3rem;
  position:relative;
  overflow:hidden;
}
.nv-promo::before { content:''; position:absolute; top:-60px; right:-60px; width:280px; height:280px; background:rgba(255,255,255,.06); border-radius:50%; }
.nv-promo::after  { content:''; position:absolute; bottom:-80px; left:-40px; width:320px; height:320px; background:rgba(0,0,0,.15); border-radius:50%; }
.nv-promo h2 { font-size:clamp(1.5rem,3.5vw,2.4rem); font-weight:800; position:relative; z-index:1; margin-bottom:.75rem; }
.nv-promo p  { color:rgba(255,255,255,.8); position:relative; z-index:1; margin-bottom:1.5rem; }
.nv-promo .nv-btn { position:relative; z-index:1; background:#fff; color:var(--nv-purple-d); font-weight:700; }
.nv-promo .nv-btn:hover { background:#e9d5ff; transform:translateY(-2px); }

/* ============================================================
   BLOG
   ============================================================ */
.nv-blog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.5rem; }
.nv-blog-card {
  display:flex;
  flex-direction:column;
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius);
  overflow:hidden;
  transition:all var(--nv-transition);
  color:var(--nv-text);
}
.nv-blog-card:hover { transform:translateY(-4px); border-color:rgba(124,58,237,.4); box-shadow:0 12px 40px rgba(0,0,0,.4),0 0 0 1px rgba(124,58,237,.1); color:var(--nv-text); }
.nv-blog-img { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--nv-surface); }
.nv-blog-img img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.nv-blog-card:hover .nv-blog-img img { transform:scale(1.06); }
.nv-blog-img-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:2.2rem; color:var(--nv-purple-l); background:linear-gradient(135deg,rgba(124,58,237,.15),rgba(79,70,229,.1)); }
.nv-blog-body { padding:1.25rem 1.5rem 1.5rem; display:flex; flex-direction:column; flex:1; }
.nv-blog-date { font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--nv-purple-l); margin-bottom:.5rem; }
.nv-blog-body h3 { font-size:1.1rem; font-weight:700; line-height:1.35; margin-bottom:.6rem; color:#fff; }
.nv-blog-body p { font-size:.88rem; color:var(--nv-muted); line-height:1.65; margin-bottom:1rem; flex:1; }
.nv-blog-readmore { display:inline-flex; align-items:center; gap:.4rem; font-size:.84rem; font-weight:700; color:var(--nv-purple-l); margin-top:auto; transition:gap var(--nv-transition); }
.nv-blog-card:hover .nv-blog-readmore { gap:.65rem; }

.nv-blog-back { display:inline-flex; align-items:center; gap:.5rem; font-size:.88rem; font-weight:600; color:var(--nv-muted); margin-bottom:1.75rem; }
.nv-blog-back:hover { color:var(--nv-purple-l); }

.nv-article-title { font-size:clamp(1.6rem,4vw,2.4rem); font-weight:800; line-height:1.25; margin-bottom:.75rem; }
.nv-article-cover { width:100%; max-height:420px; overflow:hidden; border-radius:var(--nv-radius-lg); margin:1.5rem 0 2rem; border:1px solid var(--nv-border); }
.nv-article-cover img { width:100%; height:100%; object-fit:cover; display:block; }

.nv-article-content { font-size:1rem; line-height:1.85; color:rgba(240,240,255,.88); }
.nv-article-content p { margin-bottom:1.25rem; }
.nv-article-content h1, .nv-article-content h2, .nv-article-content h3, .nv-article-content h4 { color:#fff; font-weight:700; margin:2rem 0 1rem; line-height:1.3; }
.nv-article-content h2 { font-size:1.5rem; }
.nv-article-content h3 { font-size:1.25rem; }
.nv-article-content a { color:var(--nv-purple-l); text-decoration:underline; }
.nv-article-content img { max-width:100%; height:auto; border-radius:var(--nv-radius); margin:1.5rem 0; }
.nv-article-content ul, .nv-article-content ol { margin:0 0 1.25rem 1.5rem; color:rgba(240,240,255,.88); }
.nv-article-content li { margin-bottom:.5rem; }
.nv-article-content blockquote { border-left:3px solid var(--nv-purple); background:var(--nv-glow-sm); padding:1rem 1.5rem; border-radius:0 var(--nv-radius-sm) var(--nv-radius-sm) 0; margin:1.5rem 0; color:var(--nv-text); }
.nv-article-content code { background:var(--nv-card); border:1px solid var(--nv-border); padding:.15rem .4rem; border-radius:4px; font-family:var(--fm,monospace); font-size:.88em; }
.nv-article-content pre { background:var(--nv-card); border:1px solid var(--nv-border); padding:1rem; border-radius:var(--nv-radius-sm); overflow-x:auto; margin:1.5rem 0; }

/* ============================================================
   STATS COUNTER
   ============================================================ */
.nv-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1.5rem; }
.nv-stats-card {
  text-align:center;
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius);
  padding:2rem 1.5rem;
  transition:all var(--nv-transition);
}
.nv-stats-card:hover { border-color:rgba(124,58,237,.4); transform:translateY(-3px); }
.nv-stats-card .num { font-size:2.25rem; font-weight:900; color:#fff; margin-bottom:.25rem; }
.nv-stats-card .num span { color:var(--nv-purple-l); }
.nv-stats-card .lbl { font-size:.8rem; color:var(--nv-muted); text-transform:uppercase; letter-spacing:.08em; }
.nv-stats-icon { font-size:1.5rem; color:var(--nv-purple-l); margin-bottom:.75rem; }

/* ============================================================
   WHY CHOOSE US
   ============================================================ */
.nv-why-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
.nv-why-list { list-style:none; display:flex; flex-direction:column; gap:.85rem; }
.nv-why-list li { display:flex; align-items:flex-start; gap:.85rem; }
.nv-why-check { width:24px; height:24px; border-radius:50%; background:var(--nv-glow-sm); border:1px solid var(--nv-border); display:flex; align-items:center; justify-content:center; font-size:.75rem; color:var(--nv-purple-l); flex-shrink:0; margin-top:.15rem; }
.nv-why-list strong { display:block; font-weight:600; margin-bottom:.15rem; }
.nv-why-list span { font-size:.88rem; color:var(--nv-muted); }
.nv-why-visual { background:var(--nv-card); border:1px solid var(--nv-border); border-radius:var(--nv-radius-lg); padding:2rem; }
@media (max-width:768px) {
  .nv-why-grid { grid-template-columns:1fr; }
}

/* ============================================================
   FAQ
   ============================================================ */
.nv-faq-list { display:flex; flex-direction:column; gap:.75rem; max-width:780px; margin:0 auto; }
.nv-faq-item {
  background:var(--nv-card);
  border:1px solid var(--nv-border);
  border-radius:var(--nv-radius);
  overflow:hidden;
  transition:border-color var(--nv-transition);
}
.nv-faq-item.open { border-color:rgba(124,58,237,.4); }
.nv-faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.1rem 1.5rem;
  cursor:pointer;
  font-weight:600;
  font-size:.95rem;
  user-select:none;
  gap:1rem;
}
.nv-faq-q .nv-faq-icon { font-size:1.2rem; color:var(--nv-purple-l); transition:transform .3s; flex-shrink:0; }
.nv-faq-item.open .nv-faq-icon { transform:rotate(45deg); }
.nv-faq-a {
  display:none;
  padding:0 1.5rem 1.25rem;
  color:var(--nv-muted);
  font-size:.9rem;
  line-height:1.7;
}
.nv-faq-item.open .nv-faq-a { display:block; }

/* ============================================================
   CTA FOOTER BANNER
   ============================================================ */
.nv-cta-banner {
  background:radial-gradient(ellipse at 60% 50%,rgba(124,58,237,.25),transparent 70%), var(--nv-surface);
  border-top:1px solid var(--nv-border);
  border-bottom:1px solid var(--nv-border);
  text-align:center;
  padding:5rem 1.5rem;
}
.nv-cta-banner h2 { font-size:clamp(1.6rem,4vw,2.6rem); font-weight:800; margin-bottom:1rem; }
.nv-cta-banner p { color:var(--nv-muted); font-size:1.05rem; margin-bottom:2rem; max-width:520px; margin-left:auto; margin-right:auto; }
.nv-cta-banner .nv-btn-primary { padding:.85rem 2.25rem; font-size:1rem; }

/* ============================================================
   FOOTER
   ============================================================ */
.nv-footer {
  background:var(--nv-bg);
  border-top:1px solid var(--nv-border);
  padding:3.5rem 0 2rem;
}
.nv-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.5rem; margin-bottom:2.5rem; }
.nv-footer-brand .nv-brand { font-size:1.2rem; margin-bottom:.75rem; }
.nv-footer-brand p { color:var(--nv-muted); font-size:.88rem; line-height:1.7; max-width:260px; }
.nv-footer-col h4 { font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--nv-purple-l); margin-bottom:1rem; }
.nv-footer-col ul { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.nv-footer-col ul li a { color:var(--nv-muted); font-size:.88rem; transition:color var(--nv-transition); }
.nv-footer-col ul li a:hover { color:#fff; }
.nv-footer-bottom { border-top:1px solid var(--nv-border); padding-top:1.5rem; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; font-size:.82rem; color:var(--nv-muted); }

@media (max-width:900px) {
  .nv-footer-grid { grid-template-columns:1fr 1fr; }
  .nv-footer-brand { grid-column:1/-1; }
}
@media (max-width:500px) {
  .nv-footer-grid { grid-template-columns:1fr; }
  .nv-footer-bottom { flex-direction:column; text-align:center; }
}

/* ============================================================
   AUTHENTICATED PANEL OVERRIDES (dark theme for logged-in area)
   ============================================================ */
body.pp-app {
  background: var(--nv-bg) !important;
}
.pp-sidebar {
  background: var(--nv-surface) !important;
  border-right-color: var(--nv-border) !important;
}
.pp-brand { border-bottom-color: var(--nv-border) !important; }
.pp-nav-link { color: var(--nv-muted) !important; }
.pp-nav-link:hover, .pp-nav-item.active .pp-nav-link { color: #fff !important; background: var(--nv-glow-sm) !important; }
.pp-topbar { background: rgba(13,13,36,0.92) !important; border-bottom-color: var(--nv-border) !important; backdrop-filter:blur(12px); }
.pp-balance-pill { background: var(--nv-glow-sm) !important; border-color: var(--nv-border) !important; color: var(--nv-purple-l) !important; }
.pp-main { background: var(--nv-bg) !important; }
.card { background: var(--nv-card) !important; border-color: var(--nv-border) !important; color: var(--nv-text) !important; }
.table { color: var(--nv-text) !important; }
.table thead th { background: var(--nv-surface) !important; border-color: var(--nv-border) !important; color: var(--nv-muted) !important; }
.table td, .table th { border-color: var(--nv-border) !important; }
.table-striped tbody tr:nth-of-type(odd) { background: rgba(255,255,255,.02) !important; }
.form-control { background: var(--nv-surface) !important; border-color: var(--nv-border) !important; color: var(--nv-text) !important; }
.form-control:focus { border-color: var(--nv-purple) !important; box-shadow: 0 0 0 3px var(--nv-glow-sm) !important; }
.form-control::placeholder { color: var(--nv-muted) !important; }
select.form-control option { background: var(--nv-card); color: var(--nv-text); }
.btn-primary { background: linear-gradient(135deg,var(--nv-purple),var(--nv-indigo)) !important; border-color: transparent !important; }
.btn-primary:hover { filter:brightness(1.1); transform:translateY(-1px); }
.btn-default { background: var(--nv-card) !important; border-color: var(--nv-border) !important; color: var(--nv-text) !important; }
.btn-default:hover { background: var(--nv-card-hover) !important; border-color: rgba(124,58,237,.4) !important; }
.panel, .panel-default { background: var(--nv-card) !important; border-color: var(--nv-border) !important; }
.panel-heading { background: var(--nv-surface) !important; border-bottom-color: var(--nv-border) !important; color: var(--nv-text) !important; }
.panel-body { color: var(--nv-text) !important; }
label { color: var(--nv-muted) !important; }
.alert-success { background: rgba(34,197,94,.12) !important; border-color: rgba(34,197,94,.3) !important; color: #86efac !important; }
.alert-danger  { background: rgba(239,68,68,.12) !important; border-color: rgba(239,68,68,.3) !important; color: #fca5a5 !important; }
.alert-info    { background: rgba(79,70,229,.12) !important; border-color: rgba(79,70,229,.3) !important; color: #a5b4fc !important; }
.nav-pills > li > a { color: var(--nv-muted) !important; }
.nav-pills > li.active > a { background: var(--nv-purple) !important; color: #fff !important; }
.nav-tabs > li > a { color: var(--nv-muted) !important; border-color: var(--nv-border) !important; }
.nav-tabs > li.active > a { color: #fff !important; background: var(--nv-card) !important; border-bottom-color: var(--nv-purple) !important; }
.modal-content { background: var(--nv-card) !important; border-color: var(--nv-border) !important; color: var(--nv-text) !important; }
.modal-header, .modal-footer { border-color: var(--nv-border) !important; }
.dropdown-menu { background: var(--nv-card) !important; border-color: var(--nv-border) !important; }
.dropdown-menu > li > a { color: var(--nv-text) !important; }
.dropdown-menu > li > a:hover { background: var(--nv-glow-sm) !important; }
.breadcrumb { background: transparent !important; }
hr { border-color: var(--nv-border) !important; }

/* ============================================================
   PUBLIC (PRE-LOGIN) THEME — COMPREHENSIVE PHONE RESPONSIVENESS
   ============================================================ */
@media (max-width:768px) {
  .nv-hero-stats { gap:1.25rem; }
  .nv-footer-grid { gap:1.5rem; }
}

@media (max-width:640px) {
  .nv-section { padding:2.5rem 0; }
  .nv-section-sm { padding:2rem 0; }
  .nv-container { padding:0 1.1rem; }

  .nv-hero { padding:2.5rem 0 2rem; }
  .nv-hero h1 { font-size:1.8rem; }
  .nv-hero p { font-size:.95rem; margin-bottom:1.5rem; }
  .nv-hero-actions { gap:.75rem; }
  .nv-hero-actions .nv-btn { padding:.65rem 1.4rem; font-size:.9rem; }
  .nv-hero-stats { gap:1rem; margin-top:1.75rem; padding-top:1.25rem; }
  .nv-stat-num { font-size:1.4rem; }

  .nv-login-card { padding:1.5rem; }
  .nv-login-card h3 { font-size:1.2rem; margin-bottom:1.25rem; }

  .nv-heading { font-size:1.65rem; }

  .nv-promo { padding:2rem 1.5rem; }
  .nv-promo h2 { font-size:1.4rem; }

  .nv-stats-grid { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .nv-stats-card { padding:1.5rem 1rem; }
  .nv-stats-card .num { font-size:1.75rem; }

  .nv-card { padding:1.25rem; }
  .nv-features-grid { gap:1rem; }

  .nv-faq-q { padding:.9rem 1.25rem; font-size:.88rem; }
  .nv-faq-a { padding:0 1.25rem 1rem; }

  .nv-cta-banner { padding:3rem 1.25rem; }

  .nv-footer-grid { grid-template-columns:1fr 1fr; gap:1.25rem; }

  .nv-blog-grid { grid-template-columns:1fr; gap:1.25rem; }
  .nv-article-title { font-size:1.6rem; }
  .nv-article-cover { margin:1.25rem 0 1.5rem; max-height:280px; }
  .nv-article-content { font-size:.95rem; }
}

@media (max-width:480px) {
  .nv-section { padding:2rem 0; }
  .nv-container { padding:0 .9rem; }

  .nv-hero { padding:2rem 0 1.75rem; }
  .nv-hero h1 { font-size:1.55rem; line-height:1.2; }
  .nv-hero-badge { font-size:.75rem; padding:.3rem .75rem; }
  .nv-hero-actions { gap:.5rem; }
  .nv-hero-actions .nv-btn { padding:.6rem .5rem; font-size:.8rem; gap:.25rem; }
  .nv-hero-stats { gap:.75rem; }
  .nv-stat-item { text-align:left; }
  .nv-stat-num { font-size:1.2rem; }
  .nv-stat-label { font-size:.7rem; }
  .nv-hero-visual { margin-top:1.5rem; }

  .nv-login-card { padding:1.25rem; border-radius:16px; }
  .nv-login-card h3 { font-size:1.05rem; margin-bottom:1.1rem; }
  .nv-form-submit { padding:.7rem; font-size:.9rem; }

  .nv-stats-grid { grid-template-columns:repeat(2,1fr); gap:.75rem; }
  .nv-stats-card { padding:1.25rem .875rem; }
  .nv-stats-card .num { font-size:1.5rem; }

  .g-recaptcha { transform:scale(.8); transform-origin:left center; }

  .nv-promo { padding:1.75rem 1.25rem; }
  .nv-promo h2 { font-size:1.25rem; }

  .nv-cta-banner { padding:2.5rem 1rem; }
  .nv-cta-banner h2 { font-size:1.4rem; }

  .nv-footer-grid { grid-template-columns:1fr; }
  .nv-footer-bottom { flex-direction:column; text-align:center; }

  .nv-faq-q { padding:.8rem 1rem; font-size:.85rem; }
}

@media (max-width:380px) {
  .nv-container { padding:0 .75rem; }
  .nv-hero h1 { font-size:1.35rem; }
  .nv-login-card { padding:1rem; }
  .nv-hero-actions { gap:.4rem; }
  .nv-hero-actions .nv-btn { padding:.55rem .35rem; font-size:.73rem; }
  .nv-stats-grid { grid-template-columns:1fr 1fr; }
  .nv-hero-stats { display:grid; grid-template-columns:1fr 1fr; gap:.75rem 1rem; margin-top:1.5rem; }
  .g-recaptcha { transform:scale(.72); transform-origin:left center; }
}
