/* =============================================================
   VINNCORP Design System – Translated from Tailwind/OKLCH
   ============================================================= */

/* ---------------------------------------------------------------
   1. CSS Custom Properties (Design Tokens)
   ------------------------------------------------------------- */
:root {
  --vc-radius: 0.875rem;

  /* Palette – dark-first */
  --vc-background: oklch(0.14 0.02 265);
  --vc-foreground: oklch(0.98 0.005 250);
  --vc-card: oklch(0.18 0.025 265);
  --vc-card-foreground: oklch(0.98 0.005 250);
  --vc-primary: oklch(0.68 0.21 255); /* electric blue */
  --vc-primary-fg: oklch(0.14 0.02 265);
  --vc-secondary: oklch(0.24 0.03 265);
  --vc-muted: oklch(0.22 0.025 265);
  --vc-muted-fg: oklch(0.68 0.025 260);
  --vc-accent: oklch(0.25 0.05 265);
  --vc-border: oklch(1 0 0 / 0.08);
  --vc-input: oklch(1 0 0 / 0.1);
  --vc-ring: oklch(0.68 0.21 255);
  --vc-destructive: oklch(0.62 0.22 25);

  /* Brand accents */
  --vc-electric: oklch(0.68 0.21 255);
  --vc-cyan-glow: oklch(0.78 0.16 220);
  --vc-purple-glow: oklch(0.65 0.22 295);

  /* Shadows */
  --vc-shadow-glow: 0 0 60px -10px var(--vc-electric);
  --vc-shadow-elevated:
    0 20px 60px -20px oklch(0 0 0 / 0.5), 0 0 0 1px oklch(1 0 0 / 0.06);
}

/* ---------------------------------------------------------------
   2. Base Reset for VINNCORP scope
   ------------------------------------------------------------- */
.vinncorp-dark,
.vinncorp-dark body,
body.vinncorp-dark {
  background-color: var(--vc-background);
  color: var(--vc-foreground);
  font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  background-image:
    radial-gradient(
      60% 50% at 15% 0%,
      oklch(0.68 0.21 255 / 0.18),
      transparent 60%
    ),
    radial-gradient(
      50% 40% at 90% 10%,
      oklch(0.65 0.22 295 / 0.14),
      transparent 60%
    );
  background-attachment: fixed;
}

body.vinncorp-dark ::selection {
  background: oklch(0.68 0.21 255 / 0.4);
  color: #fff;
}

/* Reset Elementor defaults that conflict */
body.vinncorp-dark .elementor-section,
body.vinncorp-dark .elementor-container,
body.vinncorp-dark .e-con,
body.vinncorp-dark .e-con-inner {
  max-width: 100% !important;
}

body.vinncorp-dark .elementor-widget-container {
  width: 100%;
}

/* ---------------------------------------------------------------
   3. Utility Classes
   ------------------------------------------------------------- */

/* Gradient text */
.vc-text-gradient {
  background: linear-gradient(
    120deg,
    oklch(0.98 0.01 250),
    oklch(0.78 0.16 220) 60%,
    oklch(0.65 0.22 295)
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Subtle dot-grid */
.vc-bg-grid {
  background-image:
    linear-gradient(to right, oklch(1 0 0 / 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, oklch(1 0 0 / 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(
    ellipse 80% 60% at 50% 0%,
    black 40%,
    transparent 80%
  );
  -webkit-mask-image: radial-gradient(
    ellipse 80% 60% at 50% 0%,
    black 40%,
    transparent 80%
  );
}

/* Glassmorphism */
.vc-glass {
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
}

/* Gradient border via pseudo */
.vc-glow-border {
  position: relative;
}
.vc-glow-border::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.6),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.5)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* Conic background */
.vc-conic-bg {
  background: conic-gradient(
    from 180deg at 50% 50%,
    oklch(0.68 0.21 255 / 0.18),
    oklch(0.65 0.22 295 / 0.18),
    oklch(0.78 0.16 220 / 0.18),
    oklch(0.68 0.21 255 / 0.18)
  );
}

/* ---------------------------------------------------------------
   4. Keyframe Animations
   ------------------------------------------------------------- */
@keyframes vc-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@keyframes vc-float {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-14px);
  }
}

@keyframes vc-float-alt {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(12px);
  }
}

@keyframes vc-float-sm {
  0%,
  100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes vc-glow-pulse {
  0%,
  100% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
}

@keyframes vc-fade-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes vc-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes vc-scale-in {
  from {
    opacity: 0;
    transform: scale(0.85);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ---------------------------------------------------------------
   5. Scroll Progress Bar
   ------------------------------------------------------------- */
#vc-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 3px;
  background: linear-gradient(
    90deg,
    var(--vc-electric),
    var(--vc-cyan-glow),
    var(--vc-purple-glow)
  );
  z-index: 9999;
  transition: width 0.1s linear;
}

/* ---------------------------------------------------------------
   6. Cursor Glow
   ------------------------------------------------------------- */
#vc-cursor-glow {
  position: fixed;
  pointer-events: none;
  z-index: 9998;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(
    circle at center,
    oklch(0.68 0.21 255 / 0.12),
    transparent 60%
  );
  transform: translate(-50%, -50%);
  transition:
    left 0.15s ease-out,
    top 0.15s ease-out;
  will-change: left, top;
}

/* ---------------------------------------------------------------
   7. Navbar
   ------------------------------------------------------------- */
#vc-navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 1rem 1rem 0;
  animation: vc-fade-up 0.5s ease-out both;
}

#vc-navbar nav {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 1rem;
  padding: 0.75rem 1.25rem;
  transition:
    background 0.3s,
    box-shadow 0.3s;
}

#vc-navbar nav.scrolled {
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
  box-shadow: var(--vc-shadow-elevated);
}

.vc-nav-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: var(--vc-foreground);
}

.vc-nav-logo-icon {
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, var(--vc-primary), var(--vc-purple-glow));
  box-shadow: var(--vc-shadow-glow);
  display: grid;
  place-items: center;
  font-weight: 700;
  font-size: 0.875rem;
  color: var(--vc-primary-fg);
  flex-shrink: 0;
}

.vc-nav-wordmark {
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: -0.025em;
}

.vc-nav-links {
  display: flex;
  align-items: center;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.vc-nav-links a {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  text-decoration: none;
  transition: color 0.2s;
}

.vc-nav-links a:hover {
  color: var(--vc-foreground);
}

.vc-nav-cta {
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  background: var(--vc-primary);
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vc-primary-fg);
  text-decoration: none;
  box-shadow: var(--vc-shadow-glow);
  transition:
    opacity 0.2s,
    transform 0.2s;
}

.vc-nav-cta:hover {
  opacity: 0.9;
  transform: translateY(-1px);
  color: var(--vc-primary-fg);
}

.vc-nav-hamburger {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  color: var(--vc-foreground);
}

.vc-nav-mobile {
  display: none;
  max-width: 1280px;
  margin: 0.5rem auto 0;
  border-radius: 1rem;
  padding: 1rem;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
}

.vc-nav-mobile.open {
  display: block;
}

.vc-nav-mobile ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.vc-nav-mobile ul a {
  display: block;
  padding: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  text-decoration: none;
}

.vc-nav-mobile ul a:hover {
  color: var(--vc-foreground);
}

.vc-nav-mobile .vc-nav-cta {
  margin-top: 0.5rem;
  width: 100%;
  justify-content: center;
}

@media (max-width: 767px) {
  .vc-nav-links,
  #vc-navbar .vc-nav-cta:not(.vc-nav-mobile .vc-nav-cta) {
    display: none;
  }
  .vc-nav-hamburger {
    display: block;
  }
}

/* ---------------------------------------------------------------
   8. Section Shared Styles
   ------------------------------------------------------------- */
.vc-section {
  position: relative;
  padding: 6rem 0;
  overflow: hidden;
}

@media (min-width: 768px) {
  .vc-section {
    padding: 8rem 0;
  }
}

.vc-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.vc-section-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  border: 1px solid oklch(1 0 0 / 0.08);
  background: oklch(1 0 0 / 0.04);
  padding: 0.25rem 0.875rem;
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--vc-muted-fg);
  margin-bottom: 1.25rem;
}

.vc-section-title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--vc-foreground);
  margin: 0 0 1rem;
}

.vc-section-desc {
  font-size: 1rem;
  color: var(--vc-muted-fg);
  line-height: 1.7;
  max-width: 40rem;
  margin: 0;
}

/* Scroll reveal – JS adds .vc-visible */
.vc-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity 0.55s ease-out,
    transform 0.55s ease-out;
}

.vc-reveal.vc-visible {
  opacity: 1;
  transform: translateY(0);
}

/* ---------------------------------------------------------------
   9. Hero Section
   ------------------------------------------------------------- */
.vc-hero {
  padding-top: 9rem;
  padding-bottom: 6rem;
}

@media (min-width: 768px) {
  .vc-hero {
    padding-top: 11rem;
    padding-bottom: 8rem;
  }
}

.vc-hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}

@media (min-width: 1024px) {
  .vc-hero-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.vc-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  border: 1px solid oklch(1 0 0 / 0.08);
  background: oklch(1 0 0 / 0.04);
  padding: 0.375rem 0.875rem;
  font-size: 0.75rem;
  color: var(--vc-muted-fg);
  margin-bottom: 1.5rem;
  animation: vc-fade-up 0.5s ease-out both;
}

.vc-hero-badge svg {
  color: var(--vc-primary);
}

.vc-hero-title {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.04em;
  color: var(--vc-foreground);
  margin: 0 0 1.5rem;
  animation: vc-fade-up 0.6s ease-out 0.05s both;
}

.vc-hero-desc {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--vc-muted-fg);
  max-width: 36rem;
  margin: 0 0 2.25rem;
  animation: vc-fade-up 0.6s ease-out 0.12s both;
}

.vc-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
  animation: vc-fade-up 0.6s ease-out 0.18s both;
}

.vc-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  background: var(--vc-primary);
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vc-primary-fg);
  text-decoration: none;
  box-shadow: var(--vc-shadow-glow);
  transition:
    transform 0.2s,
    opacity 0.2s;
  border: none;
  cursor: pointer;
}

.vc-btn-primary:hover {
  transform: translateY(-1px);
  opacity: 0.9;
  color: var(--vc-primary-fg);
}

.vc-btn-glass {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid oklch(1 0 0 / 0.08);
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vc-foreground);
  text-decoration: none;
  transition: background 0.2s;
  cursor: pointer;
}

.vc-btn-glass:hover {
  background: oklch(1 0 0 / 0.1);
  color: var(--vc-foreground);
}

.vc-hero-stats {
  display: flex;
  align-items: center;
  gap: 2rem;
  animation: vc-fade-in 0.6s ease-out 0.3s both;
}

.vc-hero-stat-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--vc-foreground);
}

.vc-hero-stat-label {
  font-size: 0.75rem;
  color: var(--vc-muted-fg);
  margin-top: 0.1rem;
}

.vc-hero-divider {
  width: 1px;
  height: 2rem;
  background: var(--vc-border);
  flex-shrink: 0;
}

/* Hero image side */
.vc-hero-visual {
  position: relative;
  animation: vc-fade-up 0.8s ease-out 0.2s both;
}

.vc-hero-img-wrap {
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: var(--vc-shadow-elevated);
  position: relative;
}

.vc-hero-img-wrap::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.6),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.5)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.vc-hero-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
}

/* Placeholder when no real image */
.vc-hero-img-placeholder {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(
    135deg,
    oklch(0.45 0.2 265),
    oklch(0.35 0.18 280),
    oklch(0.25 0.15 260)
  );
  border-radius: 1.5rem;
  overflow: hidden;
  position: relative;
  box-shadow: var(--vc-shadow-elevated);
}

.vc-hero-img-placeholder::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, oklch(1 0 0 / 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, oklch(1 0 0 / 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Dashboard mock inside placeholder */
.vc-hero-dashboard-mock {
  position: absolute;
  inset: 1.5rem;
  border-radius: 0.75rem;
  background: oklch(0.18 0.025 265 / 0.9);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid oklch(1 0 0 / 0.1);
  overflow: hidden;
}

.vc-dashboard-bar {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.625rem 0.875rem;
  border-bottom: 1px solid oklch(1 0 0 / 0.08);
  background: oklch(1 0 0 / 0.04);
}

.vc-dash-dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
}

.vc-dash-body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.vc-dash-line {
  height: 0.5rem;
  border-radius: 9999px;
  background: oklch(1 0 0 / 0.12);
}
.vc-dash-line.w-half {
  width: 50%;
}
.vc-dash-line.w-three-q {
  width: 75%;
}
.vc-dash-line.w-full {
  width: 100%;
}
.vc-dash-line.w-five-six {
  width: 83%;
}

.vc-dash-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.vc-dash-card-block {
  height: 3rem;
  border-radius: 0.5rem;
}

/* Floating stat cards */
.vc-float-card {
  position: absolute;
  border-radius: 1rem;
  padding: 1rem;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
  box-shadow: var(--vc-shadow-elevated);
  z-index: 10;
}

.vc-float-card-inner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.vc-float-card-icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.vc-float-card-label {
  font-size: 0.6875rem;
  color: var(--vc-muted-fg);
}

.vc-float-card-value {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vc-foreground);
}

.vc-float-1 {
  left: -1rem;
  top: 2.5rem;
  width: 14rem;
  animation: vc-float 6s ease-in-out infinite;
}

.vc-float-2 {
  right: -1rem;
  bottom: 2.5rem;
  width: 15rem;
  animation: vc-float-alt 7s ease-in-out 0.6s infinite;
}

.vc-float-3 {
  right: 2.5rem;
  top: -1.5rem;
  animation: vc-float-sm 5.5s ease-in-out 1.2s infinite;
}

@media (max-width: 639px) {
  .vc-float-card {
    display: none;
  }
}

/* ---------------------------------------------------------------
   10. Logo Marquee
   ------------------------------------------------------------- */
.vc-marquee-section {
  padding: 3rem 0;
  border-top: 1px solid var(--vc-border);
  border-bottom: 1px solid var(--vc-border);
  overflow: hidden;
}

.vc-marquee-label {
  text-align: center;
  font-size: 0.6875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--vc-muted-fg);
  margin-bottom: 2rem;
}

.vc-marquee-track {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
  mask-image: linear-gradient(
    to right,
    transparent,
    black 10%,
    black 90%,
    transparent
  );
}

.vc-marquee-inner {
  display: flex;
  width: max-content;
  gap: 4rem;
  animation: vc-marquee 35s linear infinite;
}

.vc-marquee-inner:hover {
  animation-play-state: paused;
}

.vc-marquee-item {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  color: var(--vc-muted-fg);
  opacity: 0.7;
  white-space: nowrap;
  transition: color 0.2s;
  cursor: default;
}

.vc-marquee-item:hover {
  color: var(--vc-foreground);
  opacity: 1;
}

/* ---------------------------------------------------------------
   11. Services Section
   ------------------------------------------------------------- */
.vc-services-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.25rem;
  margin-top: 3.5rem;
  auto-rows: 1fr;
}

@media (min-width: 640px) {
  .vc-services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .vc-services-grid {
    grid-template-columns: repeat(6, 1fr);
  }
  .vc-srv-span-2 {
    grid-column: span 2;
  }
  .vc-srv-span-3 {
    grid-column: span 3;
  }
}

.vc-service-card {
  position: relative;
  border-radius: 1rem;
  background: oklch(0.18 0.025 265 / 0.6);
  padding: 1.5rem;
  transition:
    transform 0.25s,
    background 0.25s;
  overflow: hidden;
}

.vc-service-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.6),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.5)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.vc-service-card:hover {
  transform: translateY(-4px);
  background: oklch(0.18 0.025 265);
}

.vc-service-card:hover .vc-service-inner-glow {
  opacity: 1;
}

.vc-service-inner-glow {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  transition: opacity 0.25s;
  pointer-events: none;
  box-shadow: inset 0 0 60px -20px var(--vc-electric);
}

.vc-service-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.vc-service-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  background: oklch(0.68 0.21 255 / 0.1);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  transition: background 0.25s;
  color: var(--vc-primary);
}

.vc-service-card:hover .vc-service-icon {
  background: oklch(0.68 0.21 255 / 0.2);
}

.vc-service-icon svg {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
}

.vc-service-title {
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--vc-foreground);
  margin: 0;
}

.vc-service-desc {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  line-height: 1.6;
  margin: 0;
}

/* ---------------------------------------------------------------
   12. Portfolio Section
   ------------------------------------------------------------- */
.vc-portfolio-header {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 3rem;
}

@media (min-width: 768px) {
  .vc-portfolio-header {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.vc-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.vc-filter-btn {
  border-radius: 9999px;
  padding: 0.375rem 1rem;
  font-size: 0.875rem;
  border: 1px solid var(--vc-border);
  color: var(--vc-muted-fg);
  background: transparent;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s,
    box-shadow 0.2s;
}

.vc-filter-btn:hover {
  color: var(--vc-foreground);
  background: oklch(1 0 0 / 0.05);
}

.vc-filter-btn.active {
  background: var(--vc-primary);
  color: var(--vc-primary-fg);
  border-color: transparent;
  box-shadow: var(--vc-shadow-glow);
}

.vc-portfolio-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .vc-portfolio-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

.vc-project-card {
  border-radius: 1.5rem;
  background: oklch(0.18 0.025 265 / 0.6);
  overflow: hidden;
  transition:
    transform 0.25s,
    opacity 0.3s;
  position: relative;
}

.vc-project-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.6),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.5)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  z-index: 1;
}

.vc-project-card:hover {
  transform: translateY(-4px);
}

.vc-project-card.hidden {
  display: none;
}

.vc-project-thumb {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.vc-project-thumb-bg {
  position: absolute;
  inset: 0;
}

.vc-project-thumb-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, oklch(1 0 0 / 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, oklch(1 0 0 / 0.06) 1px, transparent 1px);
  background-size: 32px 32px;
  opacity: 0.3;
}

.vc-browser-mock {
  position: absolute;
  inset: 1.5rem 2rem;
  border-radius: 0.75rem;
  background: oklch(0.18 0.025 265 / 0.85);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border: 1px solid oklch(1 0 0 / 0.1);
  overflow: hidden;
  box-shadow: var(--vc-shadow-elevated);
  transition: transform 0.7s ease;
}

.vc-project-card:hover .vc-browser-mock {
  transform: scale(1.03);
}

.vc-browser-bar {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid oklch(1 0 0 / 0.08);
  background: oklch(1 0 0 / 0.04);
}

.vc-browser-dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
}

.vc-browser-body {
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.vc-browser-line {
  height: 0.5rem;
  border-radius: 9999px;
  background: oklch(1 0 0 / 0.12);
}
.vc-browser-line.w-half {
  width: 50%;
}
.vc-browser-line.w-three-q {
  width: 75%;
}
.vc-browser-line.w-full {
  width: 100%;
}
.vc-browser-line.w-five-six {
  width: 83%;
}
.vc-browser-cols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
  padding-top: 0.25rem;
}
.vc-browser-col-block {
  height: 2.5rem;
  border-radius: 0.375rem;
}

.vc-project-info {
  padding: 1.5rem;
}

.vc-project-industry {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--vc-muted-fg);
  margin-bottom: 0.25rem;
}

.vc-project-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.vc-project-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--vc-foreground);
  margin: 0;
}

.vc-project-arrow {
  color: var(--vc-muted-fg);
  transition:
    color 0.2s,
    transform 0.2s;
  flex-shrink: 0;
}

.vc-project-card:hover .vc-project-arrow {
  color: var(--vc-primary);
  transform: rotate(12deg);
}

.vc-project-impact {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vc-foreground);
  margin-bottom: 1rem;
}

.vc-tech-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.vc-tech-pill {
  font-size: 0.75rem;
  border-radius: 9999px;
  padding: 0.25rem 0.625rem;
  background: oklch(1 0 0 / 0.05);
  border: 1px solid var(--vc-border);
  color: var(--vc-muted-fg);
}

/* ---------------------------------------------------------------
   13. Why Us Section
   ------------------------------------------------------------- */
.vc-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.5rem;
  margin-top: 3.5rem;
  margin-bottom: 2.5rem;
}

@media (min-width: 768px) {
  .vc-stats-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
  }
}

.vc-stat-box {
  border-radius: 1rem;
  background: oklch(0.18 0.025 265 / 0.6);
  padding: 1.5rem;
  text-align: center;
  position: relative;
}

.vc-stat-box::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.5),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.4)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.vc-stat-value {
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 700;
  background: linear-gradient(
    120deg,
    oklch(0.98 0.01 250),
    oklch(0.78 0.16 220) 60%,
    oklch(0.65 0.22 295)
  );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  margin-bottom: 0.5rem;
}

.vc-stat-label {
  font-size: 0.8125rem;
  color: var(--vc-muted-fg);
}

.vc-pillars-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}

@media (min-width: 768px) {
  .vc-pillars-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .vc-pillars-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.vc-pillar-card {
  border-radius: 1rem;
  background: oklch(0.18 0.025 265 / 0.4);
  border: 1px solid var(--vc-border);
  padding: 1.5rem;
  transition: background 0.25s;
}

.vc-pillar-card:hover {
  background: oklch(0.18 0.025 265 / 0.7);
}

.vc-pillar-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  background: oklch(0.68 0.21 255 / 0.1);
  display: grid;
  place-items: center;
  color: var(--vc-primary);
  margin-bottom: 1rem;
}

.vc-pillar-icon svg {
  width: 1.125rem;
  height: 1.125rem;
  stroke: currentColor;
}

.vc-pillar-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--vc-foreground);
  margin: 0 0 0.5rem;
}

.vc-pillar-desc {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  line-height: 1.6;
  margin: 0;
}

/* ---------------------------------------------------------------
   14. Process Section
   ------------------------------------------------------------- */
.vc-process-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin-top: 3.5rem;
  position: relative;
}

@media (min-width: 640px) {
  .vc-process-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .vc-process-grid {
    grid-template-columns: repeat(7, 1fr);
  }
  .vc-process-grid::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 3rem;
    height: 1px;
    background: linear-gradient(
      to right,
      transparent,
      oklch(0.68 0.21 255 / 0.4),
      transparent
    );
    pointer-events: none;
  }
}

.vc-step-card {
  border-radius: 1rem;
  background: oklch(0.18 0.025 265 / 0.5);
  border: 1px solid var(--vc-border);
  padding: 1.25rem;
  transition: border-color 0.25s;
}

.vc-step-card:hover {
  border-color: oklch(0.68 0.21 255 / 0.4);
}

.vc-step-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: var(--vc-background);
  border: 1px solid var(--vc-border);
  display: grid;
  place-items: center;
  color: var(--vc-primary);
  margin-bottom: 0.75rem;
  box-shadow: var(--vc-shadow-glow);
  position: relative;
  z-index: 1;
}

.vc-step-icon svg {
  width: 1.125rem;
  height: 1.125rem;
  stroke: currentColor;
}

.vc-step-num {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--vc-muted-fg);
  margin-bottom: 0.25rem;
}

.vc-step-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--vc-foreground);
  margin: 0 0 0.5rem;
}

.vc-step-desc {
  font-size: 0.8125rem;
  color: var(--vc-muted-fg);
  line-height: 1.55;
  margin: 0;
}

/* ---------------------------------------------------------------
   15. Testimonials Section
   ------------------------------------------------------------- */
.vc-testimonials-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 3.5rem;
  align-items: stretch;
}

@media (min-width: 1024px) {
  .vc-testimonials-grid {
    grid-template-columns: 3fr 2fr;
  }
}

.vc-quote-panel {
  border-radius: 1.5rem;
  padding: 2.5rem 3rem;
  position: relative;
  overflow: hidden;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
}

.vc-quote-panel::before {
  content: '';
  position: absolute;
  top: -5rem;
  right: -5rem;
  width: 16rem;
  height: 16rem;
  border-radius: 50%;
  background: oklch(0.68 0.21 255 / 0.2);
  filter: blur(3rem);
  pointer-events: none;
}

.vc-stars {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--vc-primary);
  margin-bottom: 1.5rem;
}

.vc-stars svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

.vc-blockquote {
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  font-weight: 500;
  line-height: 1.4;
  color: var(--vc-foreground);
  margin: 0 0 2rem;
  transition:
    opacity 0.35s,
    transform 0.35s;
}

.vc-blockquote.fading {
  opacity: 0;
  transform: translateY(-12px);
}

.vc-testimonial-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.vc-author-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.vc-author-avatar {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--vc-primary), var(--vc-purple-glow));
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--vc-primary-fg);
  flex-shrink: 0;
}

.vc-author-name {
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--vc-foreground);
}

.vc-author-role {
  font-size: 0.8125rem;
  color: var(--vc-muted-fg);
}

.vc-carousel-controls {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.vc-carousel-btn {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid oklch(1 0 0 / 0.08);
  color: var(--vc-foreground);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.2s;
}

.vc-carousel-btn:hover {
  background: oklch(1 0 0 / 0.1);
}
.vc-carousel-btn svg {
  width: 1rem;
  height: 1rem;
  stroke: currentColor;
}

/* Video panel */
.vc-video-panel {
  border-radius: 1.5rem;
  background: oklch(0.18 0.025 265 / 0.6);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  position: relative;
}

.vc-video-panel::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.6),
    transparent 40%,
    oklch(0.65 0.22 295 / 0.5)
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.vc-video-eyebrow {
  font-size: 0.6875rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--vc-muted-fg);
  margin-bottom: 0.75rem;
}

.vc-video-thumb {
  aspect-ratio: 16 / 9;
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  background: linear-gradient(
    135deg,
    oklch(0.68 0.21 255 / 0.4),
    oklch(0.65 0.22 295 / 0.3),
    oklch(0.78 0.16 220 / 0.3)
  );
  display: grid;
  place-items: center;
  cursor: pointer;
  margin-bottom: 1rem;
}

.vc-video-thumb::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, oklch(1 0 0 / 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, oklch(1 0 0 / 0.04) 1px, transparent 1px);
  background-size: 28px 28px;
  opacity: 0.3;
}

.vc-play-btn {
  position: relative;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: oklch(0.18 0.025 265 / 0.85);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  display: grid;
  place-items: center;
  transition: transform 0.2s;
}

.vc-video-thumb:hover .vc-play-btn {
  transform: scale(1.1);
}

.vc-play-btn svg {
  width: 1.375rem;
  height: 1.375rem;
  fill: var(--vc-primary);
  color: var(--vc-primary);
}

.vc-video-quote {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  line-height: 1.6;
  margin-bottom: 1rem;
  flex: 1;
}

.vc-video-attr {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--vc-foreground);
}

/* ---------------------------------------------------------------
   16. Tech Stack Section
   ------------------------------------------------------------- */
.vc-tech-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 3.5rem;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
}

.vc-tech-tag {
  border-radius: 9999px;
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid oklch(1 0 0 / 0.08);
  color: var(--vc-foreground);
  transition:
    background 0.2s,
    transform 0.2s;
  cursor: default;
}

.vc-tech-tag:hover {
  background: oklch(1 0 0 / 0.1);
  transform: translateY(-3px);
}

/* ---------------------------------------------------------------
   17. CTA Section
   ------------------------------------------------------------- */
.vc-cta-band {
  position: relative;
  overflow: hidden;
  border-radius: 1.5rem;
  border: 1px solid var(--vc-border);
  padding: 2.5rem 1.5rem;
  text-align: center;
  background:
    radial-gradient(
      80% 100% at 50% 0%,
      oklch(0.45 0.2 265 / 0.55),
      transparent 60%
    ),
    linear-gradient(135deg, oklch(0.18 0.04 265), oklch(0.16 0.06 290));
}

@media (min-width: 768px) {
  .vc-cta-band {
    padding: 4rem;
  }
}

.vc-cta-band::before {
  content: '';
  position: absolute;
  bottom: -6rem;
  left: -6rem;
  width: 18rem;
  height: 18rem;
  border-radius: 50%;
  background: oklch(0.65 0.22 295 / 0.3);
  filter: blur(3rem);
  pointer-events: none;
}

.vc-cta-band::after {
  content: '';
  position: absolute;
  top: -6rem;
  right: -6rem;
  width: 18rem;
  height: 18rem;
  border-radius: 50%;
  background: oklch(0.78 0.16 220 / 0.3);
  filter: blur(3rem);
  pointer-events: none;
}

.vc-cta-title {
  font-size: clamp(2rem, 5vw, 3.75rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.04em;
  color: var(--vc-foreground);
  margin: 0 0 1.25rem;
  position: relative;
  z-index: 1;
}

.vc-cta-desc {
  color: var(--vc-muted-fg);
  font-size: 1rem;
  max-width: 36rem;
  margin: 0 auto 2.25rem;
  line-height: 1.7;
  position: relative;
  z-index: 1;
}

.vc-cta-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  position: relative;
  z-index: 1;
}

/* ---------------------------------------------------------------
   18. Footer
   ------------------------------------------------------------- */
.vc-footer {
  border-top: 1px solid var(--vc-border);
  margin-top: 2.5rem;
}

.vc-footer-grid {
  max-width: 1280px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .vc-footer-grid {
    grid-template-columns: 2fr 1fr 1fr 1fr;
  }
}

.vc-footer-brand p {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  line-height: 1.6;
  max-width: 20rem;
  margin: 1rem 0 1.5rem;
}

.vc-footer-newsletter {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid oklch(1 0 0 / 0.08);
  padding: 0.375rem 0.375rem 0.375rem 1rem;
  max-width: 20rem;
}

.vc-footer-newsletter svg {
  color: var(--vc-muted-fg);
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.vc-footer-newsletter input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-size: 0.875rem;
  color: var(--vc-foreground);
  font-family: inherit;
}

.vc-footer-newsletter input::placeholder {
  color: var(--vc-muted-fg);
}

.vc-newsletter-submit {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--vc-primary);
  border: none;
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: opacity 0.2s;
  flex-shrink: 0;
}

.vc-newsletter-submit:hover {
  opacity: 0.9;
}
.vc-newsletter-submit svg {
  width: 0.875rem;
  height: 0.875rem;
  stroke: var(--vc-primary-fg);
}

.vc-footer-col-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--vc-foreground);
  margin-bottom: 1rem;
}

.vc-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.vc-footer-links a {
  font-size: 0.875rem;
  color: var(--vc-muted-fg);
  text-decoration: none;
  transition: color 0.2s;
}

.vc-footer-links a:hover {
  color: var(--vc-foreground);
}

.vc-footer-bottom {
  border-top: 1px solid var(--vc-border);
}

.vc-footer-bottom-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

@media (min-width: 768px) {
  .vc-footer-bottom-inner {
    flex-direction: row;
    justify-content: space-between;
  }
}

.vc-footer-copy {
  font-size: 0.75rem;
  color: var(--vc-muted-fg);
}

.vc-social-links {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.vc-social-links a {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: oklch(1 0 0 / 0.04);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border: 1px solid oklch(1 0 0 / 0.08);
  display: grid;
  place-items: center;
  color: var(--vc-muted-fg);
  text-decoration: none;
  transition:
    color 0.2s,
    background 0.2s;
}

.vc-social-links a:hover {
  color: var(--vc-foreground);
  background: oklch(1 0 0 / 0.08);
}

.vc-social-links a svg {
  width: 0.9375rem;
  height: 0.9375rem;
  stroke: currentColor;
}

/* ---------------------------------------------------------------
   19. Elementor Wrapper Overrides
   ------------------------------------------------------------- */
body.vinncorp-dark .elementor-section-wrap,
body.vinncorp-dark .elementor-inner,
body.vinncorp-dark .elementor-row {
  width: 100%;
}

body.vinncorp-dark .elementor-section.elementor-section-stretched {
  left: 0 !important;
  width: 100% !important;
}

body.vinncorp-dark .elementor-widget-html .elementor-widget-container {
  line-height: 0;
  font-size: 0;
}

body.vinncorp-dark .elementor-widget-html .elementor-widget-container > * {
  line-height: normal;
  font-size: initial;
}

/* Remove Elementor page title */
body.vinncorp-dark .entry-title {
  display: none;
}
body.vinncorp-dark .page-header {
  display: none;
}
body.vinncorp-dark .site-header {
  display: none;
}
body.vinncorp-dark .site-footer {
  display: none;
}
body.vinncorp-dark .elementor-page-title {
  display: none;
}

/* Ensure background shows through */
body.vinncorp-dark .elementor-section,
body.vinncorp-dark .e-con {
  background: transparent;
}
