/*************************************
 * Hero Intro
 ************************************/

.hero-intro {
  background: linear-gradient(180deg, var(--light-grey) 0%, #eaf2f8 25%, #cfe4f4 60%, #b3d5ed 100%);
  padding: 0;
  position: relative;
  overflow: hidden;
  /* min-height: max(calc(100vh - 111.25px), 680px);

  @media (min-width: 64em) {
    min-height: calc(100vh - 136.89px);
  } */
}

.hero-intro-inner {
  position: relative;
  min-height: inherit;
  padding-top: 50px;
  padding-bottom: 50px;
  @media (min-width: 50em) {
    padding-top: 70px;
    padding-bottom: 70px;
  }
  @media (min-width: 64em) {
    padding-top: 110px;
    padding-bottom: 110px;
  }
}

.hero-intro-row {
  row-gap: 28px;
}

/* ---------- Copy column ---------- */

.hero-intro-copy {
  position: relative;
  z-index: 2;
  padding-top: 12px;
  padding-bottom: 24px;
  width: 100%;
  max-width: 100%;
}

.hero-intro-eyebrow {
  color: var(--red);
  font-weight: 700;
  font-size: clamp(16px, 4.4vw, 24px);
  margin: 0 0 16px;
  line-height: 1.3;
  max-width: 100%;
  transition: min-height 0.2s ease;
}

.hero-intro-eyebrow-text {
  display: inline;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.hero-intro-eyebrow-bar {
  display: inline-block;
  margin-left: 4px;
  font-weight: 400;
  color: var(--red);
  will-change: opacity;
}

.hero-intro-eyebrow-bar--blink {
  animation: hero-intro-cursor 1s steps(1) infinite;
}

@keyframes hero-intro-cursor {
  0%,
  50% {
    opacity: 1;
  }
  50.01%,
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-intro-eyebrow-bar,
  .hero-intro-eyebrow-bar--blink {
    animation: none;
    opacity: 1;
  }
}

.hero-intro-heading {
  margin: 0 0 20px;
  color: var(--blue);
  font-size: clamp(1.7em, 6.8vw, 2.5em);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 106%;
  letter-spacing: 0%;
  overflow-wrap: break-word;
  word-break: break-word;
}

.hero-intro-sub {
  color: var(--blue);
  font-weight: 500;
  margin-bottom: 26px;
  max-width: 100%;
  line-height: 1.45;
  font-size: clamp(15px, 3.8vw, 17px);
}

.hero-intro-sub p {
  margin: 0 0 12px;
}

.hero-intro-sub p:last-child {
  margin-bottom: 0;
}

/* ---------- CTA ---------- */

.hero-intro-cta {
  width: 100%;
  max-width: 100%;
  justify-content: space-between;
}

/* ---------- Testimonial ---------- */

.hero-intro-testimonial-wrap {
  position: relative;
  z-index: 2;
}

.hero-intro-testimonial {
  position: relative;
  /* background: var(--blue);
  border: 4px solid var(--red); */
  border-radius: 20px;
  padding: clamp(34px, 7vw, 54px) clamp(20px, 4vw, 38px);
  min-height: 100%;
  /* box-shadow: 0 18px 38px rgba(30, 37, 104, 0.08); */
}

.hero-intro-testimonial .quote-mark {
  color: #1e2568;
  opacity: 0.12;
  /* color: #464c84; */
  /* opacity: 1; */
}

.hero-intro-testimonial .quote-mark.open {
  top: clamp(-10px, -1.3vw, -4px);
  left: clamp(2px, 0.8vw, 14px);
}

.hero-intro-testimonial .quote-mark.close {
  right: clamp(0px, 0.8vw, 14px);
  bottom: clamp(-190px, -16vw, -138px);
}

.hero-intro-quote {
  margin: 0;
  position: relative;
  z-index: 1;
}

.hero-intro-quote-text {
  margin: 0;
  color: var(--blue);
  font-weight: 600;
  line-height: 1.45;
  font-size: clamp(1.06em, 4vw, 1.42em);
}

.hero-intro-quote-cite {
  display: block;
  margin-top: 16px;
  color: var(--red);
  font-weight: 600;
  font-style: normal;
  opacity: 1;
  font-size: clamp(0.82em, 2.8vw, 0.94em);
  letter-spacing: 0.02em;
}

.hero-intro-quote-cite--solo {
  margin-top: 0;
}

/* ---------- Down arrow ---------- */

.hero-intro-down {
  position: absolute;
  left: 50%;
  bottom: clamp(18px, 3vh, 34px);
  transform: translateX(-50%);
  color: var(--red);
  z-index: 4;
  animation: hero-intro-bob 2.4s ease-in-out infinite;
}

.hero-intro-down:hover {
  color: #b80f13;
}

@keyframes hero-intro-bob {
  0%,
  100% {
    transform: translate(-50%, 0);
  }
  50% {
    transform: translate(-50%, 6px);
  }
}

@media screen and (max-width: 30em) {
  .hero-intro-copy {
    padding-top: 8px;
    padding-bottom: 16px;
  }

  .hero-intro-eyebrow {
    margin-bottom: 12px;
  }

  .hero-intro-heading {
    margin-bottom: 14px;
  }

  .hero-intro-sub {
    margin-bottom: 20px;
  }

  .hero-intro-cta {
    width: 100%;
    justify-content: space-between;
  }

  .hero-intro-cta-label {
    white-space: normal;
    max-width: 220px;
  }

  .hero-intro-testimonial {
    margin-top: -2px;
  }
}

@media screen and (min-width: 50em) {
  .hero-intro-row {
    row-gap: 0;
  }

  .hero-intro-copy {
    padding-top: 20px;
    padding-bottom: 40px;
    width: 42rem;
    max-width: 100%;
  }

  .hero-intro-heading {
    font-size: 3.4em;
    margin-bottom: 26px;
  }

  .hero-intro-eyebrow {
    font-size: 24px;
    margin-bottom: 22px;
    max-width: 35rem;
  }

  .hero-intro-sub {
    font-size: 17px;
    margin-bottom: 34px;
    max-width: 420px;
  }

  .hero-intro-cta {
    width: 26rem;
  }

  .hero-intro-testimonial-wrap {
    display: flex;
    justify-content: flex-end;
  }

  .hero-intro-testimonial {
    max-width: 32rem;
    margin-left: auto;
    margin-top: 12px;
    padding: clamp(48px, 4.4vw, 68px) clamp(26px, 2.5vw, 40px);
  }

  .hero-intro-quote-text {
    font-size: clamp(1.2em, 1.58vw, 1.52em);
  }

  .hero-intro-quote-cite {
    margin-top: 18px;
    font-size: 0.9em;
  }
}

@media screen and (min-width: 64em) {
  .hero-intro-heading {
    font-size: 4.2em;
  }

  .hero-intro-testimonial {
    margin-top: 8px;
    max-width: 35rem;
  }
}
