.content-prose h2, .content-prose h3 { margin-top: 1.4rem; font-weight: 800; }
.content-prose p, .content-prose li { color: #334155; line-height: 1.7; }
.content-prose ul { padding-left: 1.2rem; }

.container .shadow-sm { box-shadow: 0 10px 28px rgba(15,23,42,.06) !important; }
.rounded-4 { border-radius: 1rem !important; }

/* Theme helpers */
.vipn-surface{
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 1.25rem;
}

.vipn-on-surface{ color: var(--text) !important; }
.vipn-muted{ color: var(--muted) !important; }

.vipn-mutedlink{
  color: var(--muted) !important;
}
.vipn-mutedlink:hover{
  color: var(--text) !important;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.25);
}

.vipn-titlelink{
  color: var(--text) !important;
}
.vipn-titlelink:hover{
  color: var(--text) !important;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.25);
}

/* Badge (theme-aware) */
.vipn-badge{
  display: inline-flex;
  align-items: center;
  padding: .35rem .55rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
}
html[data-theme="light"] .vipn-badge{
  background: rgba(11,27,54,.08);
  border-color: rgba(9,30,66,.12);
  color: rgba(11,27,54,.90);
}

/* CTA button (keep Bootstrap button sizing) */
.vipn-btn-cta{
  background: var(--yellow, #ffcc00) !important;
  color: #0b1b36 !important;
  border: none !important;
}
.vipn-btn-cta:hover{
  background: var(--yellowHover, #f2c200) !important;
}

/* Hero styling */
.vipn-hero{ overflow: hidden; }

.vipn-hero__lead{
  background:
    radial-gradient(700px 420px at 20% 0%, rgba(52,109,255,.18), transparent 60%),
    radial-gradient(600px 360px at 90% 10%, rgba(255,204,0,.10), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 45%);
}

.vipn-hero__img{ object-fit: cover; }

.vipn-hero__side{
  background: rgba(255,255,255,.03);
  border-left: 1px solid var(--border);
}
html[data-theme="light"] .vipn-hero__side{
  background: rgba(11,27,54,.03);
}

.vipn-section-title{
  color: var(--muted);
  font-weight: 900;
  letter-spacing: .08em;
}

/* List group items theme-safe */
.vipn-listgroup .vipn-listgroup__item{
  background: transparent !important;
  border: 0 !important;
  color: var(--text) !important;
}
.vipn-listgroup .vipn-listgroup__item:hover{
  background: var(--surface2) !important;
  border-radius: 12px;
  padding-left: .5rem !important;
  padding-right: .5rem !important;
}

/* Widget spacing */
.vipn-widget{ padding: 14px; }

/* Card-news styling */
.vipn-cardnews{ border-radius: 1.25rem; }
.vipn-cardnews:hover{
  transform: translateY(-1px);
  transition: transform .12s ease, box-shadow .12s ease;
  box-shadow: var(--shadowStrong);
}

/* Trending list */
.vipn-trending{ display: grid; gap: 10px; }
.vipn-trending__item{
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.vipn-trending__item:last-child{ border-bottom: 0; padding-bottom: 0; }

/* Smaller input option */
.vipn-input--sm{
  padding: 10px 12px;
  border-radius: 14px;
  font-size: .9rem;
}

/* Navbar surface */
.vipn-navbar{
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(10px);
}

.vipn-logo{
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px;
  background: var(--surface2);
  border: 1px solid var(--border);
  font-weight: 900;
  color: var(--text);
}

.vipn-brand-text{
  font-weight: 800;
  color: var(--text);
  letter-spacing: .2px;
}

.vipn-link{
  color: var(--muted) !important;
  border-radius: 999px;
  padding: .45rem .75rem !important;
}
.vipn-link:hover{ color: var(--text) !important; background: var(--surface2); }
.vipn-link.active{ color: var(--text) !important; background: var(--surface2); font-weight: 800; }

.vipn-cta{
  background: var(--yellow, #ffcc00) !important;
  color: #0b1b36 !important;
  border: 0 !important;
  border-radius: 999px !important;
  padding: .45rem .75rem !important;
  font-weight: 800;
}
.vipn-cta:hover{ filter: brightness(.95); }

.vipn-icon-btn{
  border-radius: 999px !important;
  border: 1px solid var(--border) !important;
  background: var(--surface2) !important;
  color: var(--text) !important;
  width: 38px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Footer surface */
.vipn-footer{
  background: var(--surface);
  border-top: 1px solid var(--border);
}

