h1.vlt-large-heading {
  font-size: clamp(2.75rem, 10vw, 7.5rem);
}

/* ── Project detail page: project titles live in a 2-col layout, so
   the fullpage-slider size (7.5rem) is far too large. ── */
.vlt-projects-page .vlt-project-title {
  font-size: clamp(1.6rem, 2.5vw, 2.25rem);
  line-height: 1.25;
}

/* ── Page-specific hero variants ── */

/* Services: left-aligned split hero */
.vlt-hero--split {
  min-height: 70vh;
  display: flex;
  align-items: flex-end;
  padding-top: 14rem;
  padding-bottom: 5rem;
  position: relative;
  background: #161616;
}
.vlt-hero--split .vlt-hero__bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #161616 50%, rgba(22,22,22,0.55) 100%);
  z-index: 1;
}
.vlt-hero--split .vlt-hero__img {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  opacity: 0.22;
}
.vlt-hero--split .container {
  position: relative;
  z-index: 2;
}
.vlt-hero--split .vlt-hero__kicker {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #cf000f;
  display: block;
  margin-bottom: 1.25rem;
}
.vlt-hero--split .vlt-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  margin-top: 3rem;
  padding-top: 2.5rem;
  border-top: 1px solid rgba(255,255,255,0.15);
}
.vlt-hero--split .vlt-hero__stat-label {
  font-size: 0.75rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  display: block;
  margin-bottom: 0.25rem;
}
.vlt-hero--split .vlt-hero__stat-value {
  font-size: 1.375rem;
  font-weight: 500;
  color: #fff;
}

/* Projects: text-only banner */
.vlt-hero--text {
  min-height: 50vh;
  display: flex;
  align-items: flex-end;
  padding-top: 14rem;
  padding-bottom: 5rem;
  background: #161616;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.vlt-hero--text .vlt-hero__meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 3rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,0.12);
}
.vlt-hero--text .vlt-hero__meta-item span {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  margin-bottom: 0.25rem;
}
.vlt-hero--text .vlt-hero__meta-item p {
  font-size: 0.9375rem;
  color: rgba(255,255,255,0.75);
  margin: 0;
  max-width: none;
}

/* Testimonials: quote-first hero */
.vlt-hero--quote {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  padding-top: 12rem;
  padding-bottom: 6rem;
  background: #161616;
  overflow: hidden;
}
.vlt-hero--quote .vlt-hero__bg-quote {
  position: absolute;
  right: -2rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: clamp(12rem, 25vw, 22rem);
  font-weight: 700;
  line-height: 1;
  color: rgba(255,255,255,0.03);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.vlt-hero--quote .container {
  position: relative;
  z-index: 1;
}

/* Partners: full-bleed minimal hero */
.vlt-hero--minimal {
  min-height: 55vh;
  display: flex;
  align-items: center;
  padding-top: 12rem;
  padding-bottom: 5rem;
  position: relative;
  overflow: hidden;
}
.vlt-hero--minimal .vlt-hero__bg-img {
  position: absolute;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  opacity: 0.18;
}
.vlt-hero--minimal .vlt-hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #161616 0%, rgba(22,22,22,0.7) 60%, #161616 100%);
}
.vlt-hero--minimal .container { position: relative; z-index: 2; }

/* Blog: text + featured split */
.vlt-hero--blog {
  background: #161616;
  padding-top: 12rem;
  padding-bottom: 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.vlt-hero--blog .vlt-hero__title-row {
  padding-bottom: 4rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}


.vlt-home-hero .vlt-section__content {
  position: relative;
  overflow: hidden;
  background: #050505;
}

.vlt-home-hero-background {
  background:
    radial-gradient(circle at 74% 22%, rgba(180, 125, 92, 0.22), rgba(5, 5, 5, 0) 22%),
    linear-gradient(90deg, rgba(5, 5, 5, 0.98) 0%, rgba(5, 5, 5, 0.94) 32%, rgba(5, 5, 5, 0.42) 58%, rgba(5, 5, 5, 0.82) 100%),
    #050505;
}

.vlt-home-hero-background::before,
.vlt-home-hero-background::after {
  position: absolute;
  inset: 0;
  content: "";
}

.vlt-home-hero-background::before {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.68) 0%, rgba(0, 0, 0, 0.12) 35%, rgba(0, 0, 0, 0.7) 100%),
    radial-gradient(circle at 22% 52%, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.26) 52%, rgba(0, 0, 0, 0.78) 100%);
}

.vlt-home-hero-background::after {
  background: linear-gradient(90deg, rgba(5, 5, 5, 0.96) 0%, rgba(5, 5, 5, 0.74) 26%, rgba(5, 5, 5, 0.14) 54%, rgba(5, 5, 5, 0) 70%);
}

.vlt-home-hero-background__backdrop,
.vlt-home-hero-background__portrait,
.vlt-home-hero-background__mobile-photo {
  position: absolute;
}

.vlt-home-hero-background__backdrop {
  inset: -4%;
  background: transparent;
}

.vlt-home-hero-background__portrait {
  top: 0;
  right: clamp(1rem, 3vw, 3.25rem);
  bottom: 0;
  width: clamp(24rem, 46vw, 44rem);
  height: 100%;
  background: url("../img/image.png") right bottom / contain no-repeat;
  filter: brightness(0.92) contrast(1.03) saturate(0.94);
  opacity: 0.98;
  transform-origin: right center;
}

.vlt-home-hero-background__mobile-photo {
  display: none;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  filter: brightness(0.84) contrast(1) saturate(0.96);
}

.vlt-home-hero-background__portrait::after {
  position: absolute;
  inset: 0;
  content: "";
  background: none;
}

.vlt-home-hero .container,
.vlt-home-hero .row,
.vlt-home-hero .col-lg-5 {
  position: relative;
  z-index: 2;
}

@media only screen and (max-width: 991px) {
  .vlt-home-hero-background::after {
    background: linear-gradient(180deg, rgba(5, 5, 5, 0.28) 0%, rgba(5, 5, 5, 0.56) 40%, rgba(5, 5, 5, 0.92) 100%);
  }

  .vlt-home-hero-background__backdrop,
  .vlt-home-hero-background__portrait {
    display: none;
  }

  .vlt-home-hero-background__mobile-photo {
    display: block;
  }
}

@media only screen and (max-width: 575px) {
  .vlt-home-hero-background::before {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.18) 28%, rgba(0, 0, 0, 0.58) 100%);
  }

  .vlt-home-hero-background::after {
    background: linear-gradient(180deg, rgba(5, 5, 5, 0.08) 0%, rgba(5, 5, 5, 0.28) 42%, rgba(5, 5, 5, 0.68) 100%);
  }

  .vlt-home-hero-background__mobile-photo {
    display: block;
  }
}
