.homepage-hero {
  --context-bg: var(--nv-blue-light);
  position: relative;
  isolation: isolate;
}

.homepage-hero-bg {
  position: absolute;
  inset: 0;
  background-image: var(--hero-bg);
  background-size: cover;
  background-position: center;
  z-index: -2;
}
@media (max-width: 768px) {
  .homepage-hero-bg {
    background-image: var(--hero-bg-mobile, var(--hero-bg));
  }
}

.homepage-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: color-mix(
    in srgb,
    var(--nv-black) calc(var(--hero-overlay, 0.35) * 100%),
    transparent
  );
}

.homepage-hero-grid {
  display: grid;
  grid-template-columns: 1fr minmax(0, 520px);
  align-items: center;
  gap: var(--space-lg);
  min-height: clamp(45vh, 75vh, 75vh);
}

.homepage-hero-spacer {
  min-height: 1px;
}

.homepage-hero-card {
  padding: var(--space-lg);
  display: grid;
  gap: var(--space-md);
  position: relative;
  background: linear-gradient(180deg, var(--nv-blue), var(--nv-blue-light));
  border-radius: calc(var(--border-radius-lg) * 1.5);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.22);
}

.homepage-hero-partner {
  display: flex;
  align-items: center;
  border-radius: var(--border-radius-md);
  background: color-mix(in srgb, var(--nv-white) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--nv-white) 35%, transparent);
}
.homepage-hero-partner img {
  max-width: 100%;
  height: auto;
  display: block;
}

.homepage-hero-title {
  color: var(--nv-white);
  position: relative;
  padding-bottom: var(--space-sm);
}
.homepage-hero-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 80px;
  height: 4px;
  border-radius: 4px;
  background: var(--nv-orange);
}

.homepage-hero-card .button-primary {
  width: 100%;
}

.homepage-hero-reply {
  text-align: center;
  color: var(--nv-white);
  font-style: italic;
  margin-top: var(--space-xs);
}

@media (max-width: 1024px) {
  .homepage-hero-grid {
    grid-template-columns: 1fr;
    gap: var(--space-md);
  }
  .homepage-hero-spacer {
    display: none;
  }
  .homepage-hero-card {
    padding: var(--space-md);
  }
}
