/*
 * Shared HELEOS marketing hero.
 * Source of truth for geometry on homepage + primary marketing pages.
 * Every page supplies only copy, buttons and image path.
 */
.b2b-hero.site-hero {
  --home-blue: #2b3787;
  --home-blue-dark: #172653;
  --home-blue-deep: #0e224b;
  --home-orange: #ef7d00;
  --home-text: #17224b;
  --home-muted: #667087;
  position: relative;
  isolation: isolate;
  min-height: 760px;
  margin-top: -164px;
  padding-top: 164px;
  overflow: hidden;
  border-bottom: 0;
  background: linear-gradient(90deg, #fff 0%, #f7f9fd 48%, #edf3fb 100%);
}

/* The hero image is a real image layer, not a page-specific CSS background. */
.site-hero-background {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.site-hero-background img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* The same readability veil is used on every page. */
.b2b-hero.site-hero::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.995) 0%,
      rgba(255,255,255,.985) 34%,
      rgba(255,255,255,.94) 44%,
      rgba(255,255,255,.74) 55%,
      rgba(255,255,255,.28) 69%,
      rgba(255,255,255,0) 84%),
    linear-gradient(180deg, rgba(8,24,55,.03), rgba(8,24,55,.09));
  pointer-events: none;
}
.b2b-hero.site-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background:
    radial-gradient(circle at 73% 18%, rgba(255,255,255,.14), transparent 28%),
    linear-gradient(180deg, rgba(10,26,59,0) 62%, rgba(10,26,59,.08) 100%);
  pointer-events: none;
}

/* Homepage previously owned this negative offset. Shared hero owns it now. */
.page-home .b2b-home { margin-top: 0 !important; }

.b2b-hero-grid.site-hero-grid {
  position: relative;
  z-index: 2;
  grid-template-columns: minmax(0, 760px) minmax(0, 1fr);
  min-height: 596px;
}

.b2b-hero-copy.site-hero-copy {
  width: 100%;
  max-width: 760px;
  padding: 78px 26px 88px 0;
}

.b2b-hero-copy.site-hero-copy h1 {
  max-width: 734px;
  margin: 12px 0 24px;
  color: var(--home-text);
  font-size: clamp(50px, 3.45vw, 56px);
  line-height: .96;
  font-weight: 780;
  letter-spacing: -.042em;
  text-wrap: balance;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
}

.site-hero-title > span {
  display: block;
  white-space: nowrap;
}

.b2b-hero-copy.site-hero-copy > p:not(.b2b-kicker):not(.b2b-hero-note) {
  max-width: 625px;
  margin-bottom: 26px;
  color: #566077;
  font-size: 16px;
  line-height: 1.58;
}

.site-hero-actions { gap: 12px; }
.site-hero-note { max-width: 610px; margin-top: 16px; }

/* Spacer for the visual half. Geometry is shared even though the image is full-bleed. */
.b2b-hero-media.site-hero-media {
  min-height: 596px;
  overflow: visible;
}
.b2b-hero-media.site-hero-media::before { display: none; }
.b2b-hero-media.site-hero-media img { display: none !important; }

.site-hero-breadcrumbs {
  position: absolute;
  z-index: 3;
  top: 28px;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  color: #81899a;
  font-size: 12px;
  line-height: 1.3;
}
.site-hero-breadcrumbs a { color: #81899a; }
.site-hero-breadcrumbs a:hover { color: var(--home-blue); }
.site-hero-breadcrumbs b { color: #4b5568; font-weight: 650; }

@media (min-width: 981px) and (max-width: 1180px) {
  .b2b-hero-grid.site-hero-grid { grid-template-columns: minmax(0, 650px) minmax(0, 1fr); }
  .b2b-hero-copy.site-hero-copy { max-width: 650px; padding-right: 22px; }
  .b2b-hero-copy.site-hero-copy h1 { max-width: 628px; font-size: 48px; }
}

@media (max-width: 1080px) {
  .b2b-hero.site-hero {
    min-height: 0;
    margin-top: -92px;
    padding-top: 92px;
  }
  .site-hero-background img { object-position: 62% center !important; }
  .b2b-hero-grid.site-hero-grid { min-height: 520px; }
  .b2b-hero-copy.site-hero-copy { padding-top: 62px; padding-bottom: 62px; }
  .b2b-hero-media.site-hero-media { min-height: 420px; }
  .site-hero-breadcrumbs { top: 22px; }
}

@media (max-width: 980px) {
  .b2b-hero.site-hero::before {
    background:
      linear-gradient(180deg,
        rgba(255,255,255,.98) 0%,
        rgba(255,255,255,.93) 48%,
        rgba(255,255,255,.48) 68%,
        rgba(255,255,255,.08) 88%),
      linear-gradient(180deg, rgba(8,24,55,.02), rgba(8,24,55,.06));
  }
  .site-hero-background img { object-position: 65% center !important; }
  .b2b-hero-grid.site-hero-grid { grid-template-columns: 1fr; }
  .b2b-hero-copy.site-hero-copy { min-height: 520px; padding-top: 70px; padding-bottom: 70px; }
  .b2b-hero-media.site-hero-media { display: none; }
  .site-hero-title > span { white-space: normal; }
  .b2b-hero-copy.site-hero-copy h1 { max-width: 760px; text-wrap: balance; }
}

@media (max-width: 700px) {
  .b2b-hero.site-hero {
    margin-top: -80px;
    padding-top: 80px;
  }
  .site-hero-background img { object-position: 68% center !important; }
  .b2b-hero-copy.site-hero-copy {
    min-height: 500px;
    padding: 54px 0;
  }
  .b2b-hero-copy.site-hero-copy h1 {
    font-size: clamp(40px, 11.5vw, 52px);
    line-height: .98;
  }
  .b2b-hero-copy.site-hero-copy > p:not(.b2b-kicker):not(.b2b-hero-note) { font-size: 15px; }
  .site-hero-breadcrumbs { top: 18px; font-size: 11px; }
  .site-hero-actions { display: grid; grid-template-columns: 1fr; }
  .site-hero-actions .b2b-button { width: 100%; }
}
