/* Modern subtle pattern applied to the hero container so it covers larger top area */
.container.hero-banner{
  position: relative;
  overflow: visible;
}

/* contemporary mesh gradient background with smooth color blends */
.container.hero-banner::before{
  content: "";
  position: absolute;
  /* extend beyond the container to cover viewport gutters using centered width (avoids overflow) */
  top: -8%;
  bottom: -8%;
  left: 50%;
  right: auto;
  width: calc(100% + 24vw);
  z-index: -2;
  border-radius: 0; /* allow full-bleed */
  /* mesh gradient with flowing color transitions including red accent */
  background: 
    radial-gradient(800px 600px at 20% 10%, rgba(0, 0, 0, 0.02), transparent 35%),
    radial-gradient(900px 700px at 80% 20%, rgba(0, 0, 0, 0.015), transparent 40%),
    radial-gradient(700px 500px at 10% 60%, rgba(180, 150, 255, 0.04), transparent 35%),
    radial-gradient(850px 650px at 90% 70%, rgba(0, 0, 0, 0.02), transparent 38%),
    radial-gradient(750px 550px at 75% 45%, rgba(179, 0, 12, 0.03), transparent 42%),
    radial-gradient(700px 480px at 35% 75%, rgba(179, 0, 12, 0.02), transparent 38%),
    radial-gradient(600px 400px at 50% 50%, rgba(0, 0, 0, 0.01), transparent 40%),
    linear-gradient(135deg, rgba(0, 0, 0, 0.01) 0%, rgba(0, 0, 0, 0.005) 100%);
  filter: blur(28px) saturate(100%);
  transform: translateX(-50%) translateZ(0);
  pointer-events: none;
}

/* secondary mesh layer for depth */
.container.hero-banner::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  right: auto;
  width: calc(100% + 24vw);
  z-index: -1;
  border-radius: 0;
  background:
    radial-gradient(700px 550px at 30% 30%, rgba(200, 150, 255, 0.03), transparent 40%),
    radial-gradient(800px 600px at 70% 40%, rgba(0, 0, 0, 0.01), transparent 38%),
    radial-gradient(650px 500px at 65% 65%, rgba(179, 0, 12, 0.015), transparent 40%);
  opacity: 0.25;
  mix-blend-mode: screen;
  transform: translateX(-50%);
  pointer-events: none;
}

/* ensure hero content (including .cd-intro) sits above the decorative background */
.container.hero-banner .cd-intro,
.container.hero-banner .cd-intro .cd-headline,
.container.hero-banner .cd-intro h1,
.container.hero-banner .cd-intro h5{
  position: relative;
  z-index: 2;
  color: #071024;
}

/* align buttons with the hero text (left-aligned with headline) */
/* remove the inner container gutters so the buttons line up with the heading */
.container.hero-banner .cd-intro > .container{
  padding-left: 0;
  padding-right: 0;
}

.container.hero-banner .cd-intro .container > .row{
  display: flex;
  justify-content: flex-start; /* left align with hero text */
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-left: 0; /* neutralize bootstrap row offsets */
  margin-right: 0;
}

.container.hero-banner .cd-intro .btn-dark,
.container.hero-banner .cd-intro .btn-outline-dark{ min-width: 160px; }

/* responsive adjustments */
@media (max-width: 768px){
  .container.hero-banner .cd-intro{ padding: 1.5rem 0.6rem; }
  .container.hero-banner .cd-intro h1{ font-size: 1.6rem; }
  .container.hero-banner::before{ filter: blur(14px); top: -14%; bottom: -14%; width: calc(100% + 24vw); }
  .container.hero-banner::after{ opacity: 0.5; }
  .container.hero-banner .cd-intro .btn-dark,
  .container.hero-banner .cd-intro .btn-outline-dark{ width: 100%; max-width: 360px; }
}

@media (prefers-reduced-motion: reduce){
  .container.hero-banner::before, .container.hero-banner::after{ transition: none; animation: none; }
}

/* Full-bleed fallback on the top section to eliminate viewport gutters */
.home{
  position: relative;
  z-index: 0;
}
.home::before{
  content: "";
  position: absolute;
  top: 0;
  height: 520px; /* coverage height for the hero area */
  left: 50%;
  right: auto;
  width: calc(100% + 24vw);
  z-index: -3;
  /* mesh gradient for full-bleed hero with red accent */
  background: 
    radial-gradient(800px 600px at 20% 10%, rgba(0, 0, 0, 0.02), transparent 35%),
    radial-gradient(900px 700px at 80% 20%, rgba(0, 0, 0, 0.015), transparent 40%),
    radial-gradient(700px 500px at 10% 60%, rgba(180, 150, 255, 0.04), transparent 35%),
    radial-gradient(850px 650px at 90% 70%, rgba(0, 0, 0, 0.02), transparent 38%),
    radial-gradient(750px 550px at 75% 45%, rgba(179, 0, 12, 0.03), transparent 42%),
    radial-gradient(700px 480px at 35% 75%, rgba(179, 0, 12, 0.02), transparent 38%),
    radial-gradient(600px 400px at 50% 50%, rgba(0, 0, 0, 0.01), transparent 40%),
    linear-gradient(135deg, rgba(0, 0, 0, 0.01) 0%, rgba(0, 0, 0, 0.005) 100%);
  filter: blur(32px) saturate(100%);
  transform: translateX(-50%);
  pointer-events: none;
}
.home::after{
  content: "";
  position: absolute;
  top: 0;
  height: 520px;
  left: 50%;
  right: auto;
  width: calc(100% + 24vw);
  z-index: -2;
  background:
    radial-gradient(700px 550px at 30% 30%, rgba(200, 150, 255, 0.03), transparent 40%),
    radial-gradient(800px 600px at 70% 40%, rgba(0, 0, 0, 0.01), transparent 38%),
    radial-gradient(650px 500px at 65% 65%, rgba(179, 0, 12, 0.015), transparent 40%);
  opacity: 0.25;
  mix-blend-mode: screen;
  transform: translateX(-50%);
  pointer-events: none;
}

@media (max-width: 768px){
  .home::before, .home::after{ left: 50%; right: auto; width: calc(100% + 12vw); height: 360px; filter: blur(18px); transform: translateX(-50%); }
}

/* fallback to prevent any horizontal scroll caused by decorations */
html, body { overflow-x: hidden; }
