/** @define hero-image */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

/** @define prominent-link */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

.hero-image {
  margin: 0 auto;
  max-width: 87.5rem;
}

.hero-image .title,
.hero-image .lede {
  color: #0b463d;
}

@media screen and (min-width: 1024px) {
  .hero-image {
    clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
    display: flex;
    margin: 0 auto;
    min-height: 372px;
    position: relative;
  }
}

@media screen and (min-width: 1024px) and (min-width: 768px) {
  .hero-image {
    margin: 0 auto;
  }
}

.hero-image__title,
.hero-image__sensitiveContent {
  color: #0b463d;
  display: inline;
  padding: 8px 0;
  position: relative;
}

@media screen and (min-width: 1024px) {
  .hero-image__title,
  .hero-image__sensitiveContent {
    display: block;
  }
}

.hero-image h1.sensitiveContent {
  font-family: barnardos-speak, sans-serif;
}

.hero-image__small-screen-section {
  background-color: #a5feae;
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
  padding: 32px 20px 40px;
}

@media screen and (min-width: 1024px) {
  .hero-image__small-screen-section {
    box-shadow: none;
    clip-path: none;
    display: flex;
    flex-basis: 50%;
    flex-flow: column;
    justify-content: center;
    margin: 0;
    min-height: 372px;
    order: -1;
    padding: 80px 100px;
  }
}

.hero-image__description {
  color: #0b463d;
  padding-top: 16px;
}

@media screen and (min-width: 1024px) {
  .hero-image__description {
    padding-top: 24px;
  }
}

.hero-image__lede {
  font-family: arial, sans-serif;
  font-size: var(--step-3);
  line-height: 1.2;
}

@media screen and (min-width: 500px) {
  .hero-image__small-screen-section .hero-image__description {
    line-height: 2.75rem;
  }
}

.hero-image__barred {
  color: #0b463d;
}

@media screen and (max-width: 1024px) {
  .hero-image__barred {
    margin: 8px 0;
  }
}

.hero-image__banner {
  display: flex;
  min-height: 210px;
  position: relative;
}

@media screen and (min-width: 500px) {
  .hero-image__banner {
    min-height: 290px;
  }
}

@media screen and (min-width: 1024px) {
  .hero-image__banner {
    flex-basis: 50%;
    min-height: 0;
  }
}

.hero-image__background {
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%;
}

@media screen and (min-width: 1024px) {
  .hero-image__background {
    padding: 0;
  }
}

.hero-image__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 20rem;
}

.hero-image__content > * {
  z-index: 1;
}

@media screen and (min-width: 500px) {
  .hero-image__content {
    min-height: 25rem;
  }
}

@media screen and (min-width: 768px) {
  .hero-image__content {
    min-height: 28rem;
  }
}

@media screen and (min-width: 1024px) {
  .hero-image__content {
    min-height: 30rem;
  }
}

@media screen and (min-width: 1440px) {
  .hero-image__content {
    min-height: 32rem;
  }
}

.hero-image__image {
  height: 100%;
  position: relative;
  top: 0;
  width: 100%;
  z-index: -1;
}

.hero-image__image img {
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  width: 100%;
}

.hero-image--focus-right .hero-image__image img {
  object-position: 75% 50%;
}

.hero-image--focus-topCenter .hero-image__image img {
  object-position: 50% 0;
}

.hero-image--focus-topRight .hero-image__image img {
  object-position: 75% 0;
}

.hero-image__cta {
  margin-top: 24px;
}

@media screen and (min-width: 1024px) {
  .hero-image__cta {
    margin-top: 32px;
  }
}

.hero-image__cta a {
  appearance: none;
  background-color: #0b463d;
  border-radius: 0;
  color: #fff;
  display: inline-block;
  font-family: barnardos-speak, sans-serif;
  font-size: var(--step-2);
  font-weight: 700;
  line-height: 1.2;
  padding: 0.4rem 2rem 0.5rem;
  position: relative;
  text-align: center;
  user-select: none;
  box-shadow: 3px 3px #1d1d1d;
  white-space: normal;
}

.hero-image__cta a:hover,
.hero-image__cta a:focus {
  box-shadow: none;
}

.hero-image__cta a:focus-visible {
  outline: 0.2rem solid #1d1d1d;
}

@media screen and (max-width: 44rem) {
  .hero-image__cta a {
    padding: 12px 24px;
  }
}

/** @define hero-text */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

/** @define prominent-link */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

/** @define lede */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

.hero-text {
  margin: 0 auto;
  max-width: 87.5rem;
}

.hero-text .title,
.hero-text .lede {
  color: #0b463d;
}

.hero-text__container {
  background-color: #a5feae;
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
  padding: 32px 20px 40px;
}

@media screen and (min-width: 48rem) {
  .hero-text__container {
    padding: 40px 100px;
  }
}

.hero-text__title,
.hero-text__sensitiveContent {
  color: #0b463d;
}

.hero-text h1.sensitiveContent {
  font-family: barnardos-speak, sans-serif;
}

.hero-text__description {
  margin-top: 16px;
}

@media screen and (min-width: 1024px) {
  .hero-text__description {
    margin-top: 24px;
  }
}

.hero-text__cta {
  margin-top: 24px;
}

@media screen and (min-width: 1024px) {
  .hero-text__cta {
    margin: 32px 0 0;
  }
}

.hero-text__cta a {
  appearance: none;
  background-color: #0b463d;
  border-radius: 0;
  color: #fff;
  display: inline-block;
  font-family: barnardos-speak, sans-serif;
  font-size: var(--step-2);
  font-weight: 700;
  line-height: 1.2;
  padding: 0.4rem 2rem 0.5rem;
  position: relative;
  text-align: center;
  user-select: none;
  box-shadow: 3px 3px #1d1d1d;
  white-space: normal;
}

.hero-text__cta a:hover,
.hero-text__cta a:focus {
  box-shadow: none;
}

.hero-text__cta a:focus-visible {
  outline: 0.2rem solid #1d1d1d;
}

@media screen and (max-width: 44rem) {
  .hero-text__cta a {
    padding: 12px 24px;
  }
}

/** @define home-hero-image */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

/** @define lede */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

.lede {
  color: #1d1d1d;
  font-family: arial, sans-serif;
  font-size: var(--step-3);
  line-height: 1.2;
}

.lede--max-width {
  max-width: 45rem;
}

/** @define prominent-link */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

.prominent-link {
  appearance: none;
  background-color: #0b463d;
  border-radius: 0;
  color: #fff;
  display: inline-block;
  font-family: barnardos-speak, sans-serif;
  font-size: var(--step-2);
  font-weight: 700;
  line-height: 1.2;
  padding: 0.4rem 2rem 0.5rem;
  position: relative;
  text-align: center;
  user-select: none;
  white-space: nowrap;
}

.prominent-link:hover,
.prominent-link:focus {
  box-shadow: none;
}

.prominent-link:focus-visible {
  outline: 0.2rem solid #e86c00;
}

.prominent-link--teal {
  background-color: #007a87;
}

.prominent-link--pink {
  background-color: #cc0070;
}

.prominent-link--green {
  background-color: #0b463d;
}

.prominent-link--orange {
  background-color: #ff955a;
}

.prominent-link--yellow {
  background-color: #ffd45a;
}

.prominent-link--rebrand-light-green {
  background-color: #a5feae;
}

.prominent-link--rebrand-IB-pink {
  background-color: #f487fa;
}

.prominent-link--rebrand-IB-light-blue {
  background-color: #71abff;
}

.prominent-link--purple {
  background-color: #6e2066;
}

.prominent-link--black {
  background-color: #1d1d1d;
}

.prominent-link--white {
  background-color: #fff;
}

.prominent-link--tight {
  flex-basis: auto;
  padding: 0.4rem 0.75rem 0.5rem;
}

.home-hero-image {
  margin: 0 auto -50px;
  max-width: 87.5rem;
}

.home-hero-image .title,
.home-hero-image .lede {
  color: #0b463d;
}

@media screen and (min-width: 1024px) {
  .home-hero-image {
    margin: 0 auto -100px;
  }
}

.home-hero-image__row {
  background-color: #a5feae;
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
  padding: 24px 16px 40px;
}

@media screen and (min-width: 1024px) {
  .home-hero-image__row {
    clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
    max-width: 57%;
    padding: 40px 32px 48px;
  }
}

.home-hero-image__title,
.home-hero-image__sensitiveContent {
  color: #0b463d;
  display: inline;
  position: relative;
}

.home-hero-image h1.sensitiveContent {
  font-family: barnardos-speak, sans-serif;
}

.home-hero-image__description {
  color: #0b463d;
}

.home-hero-image__barred {
  color: #0b463d;
  margin-top: 0.5rem;
}

.home-hero-image__banner {
  position: relative;
}

.home-hero-image__content {
  padding: 0 20px;
  transform: translate(0, -40px);
}

@media screen and (min-width: 1024px) {
  .home-hero-image__content {
    padding: 0 100px;
    transform: translate(0, -50%);
  }

  .home-hero-image__content > * {
    z-index: 1;
  }
}

.home-hero-image__image {
  max-height: 540px;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.home-hero-image__image img {
  display: block;
  height: auto;
  width: 100%;
}

.home-hero-image--focus-right .home-hero-image__image img {
  object-position: 75% 50%;
}

.home-hero-image--focus-topCenter .home-hero-image__image img {
  object-position: 50% 0;
}

.home-hero-image--focus-topRight .home-hero-image__image img {
  object-position: 75% 0;
}

.home-hero-image__cta {
  padding-top: 24px;
}

@media screen and (min-width: 1024px) {
  .home-hero-image__cta {
    padding-top: 32px;
  }
}

.home-hero-image__cta a {
  appearance: none;
  background-color: #0b463d;
  border-radius: 0;
  color: #fff;
  display: inline-block;
  font-family: barnardos-speak, sans-serif;
  font-size: var(--step-2);
  font-weight: 700;
  line-height: 1.2;
  padding: 0.4rem 2rem 0.5rem;
  position: relative;
  text-align: center;
  user-select: none;
  box-shadow: 3px 3px #1d1d1d;
  white-space: normal;
}

.home-hero-image__cta a:hover,
.home-hero-image__cta a:focus {
  box-shadow: none;
}

.home-hero-image__cta a:focus-visible {
  outline: 0.2rem solid #e86c00;
}

@media screen and (max-width: 44rem) {
  .home-hero-image__cta a {
    padding: 0.6rem 1.5rem;
  }
}

@supports (object-fit: cover) and (object-position: 50% 50%) {
  .home-hero-image__image img {
    aspect-ratio: 16/9;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
  }
}

/** @define service-hero-image */

/*
 * Font sizes are based on a a typographic scale of 1.125. Each font size should
 * be 1.125 times larger than the previous one. The base font size is 16px.
 * Use rems for all units because they are scaled for screen sizes. At 100%
 * scale 1rem = 16px.
 * All that being said, font sizes are ultimately defined by the Deeson design
 * which takes precedence over the design system.
 */

.service-hero-image {
  margin: 0 auto;
  max-width: 87.5rem;
}

@media screen and (min-width: 1024px) {
  .service-hero-image {
    margin: 0 auto;
  }
}

.service-hero-image__row {
  display: block;
  margin-top: -2.5rem;
  max-width: 820px;
  min-width: 300px;
  padding: 0 40px;
}

@media screen and (min-width: 1024px) {
  .service-hero-image__row {
    margin-top: -3rem;
    padding-left: 100px;
  }
}

.service-hero-image__title,
.service-hero-image__sensitiveContent {
  background-color: #a5feae;
  clip-path: polygon(0 0, 100% 0, 100% 90%, 0 100%);
  color: #0b463d;
  min-width: 300px;
  padding: 24px 16px 32px;
  position: relative;
}

@media screen and (min-width: 1024px) {
  .service-hero-image__title,
  .service-hero-image__sensitiveContent {
    clip-path: polygon(0 0, 100% 0, 100% 85%, 0 100%);
    padding: 40px 32px 48px 40px;
  }
}

.service-hero-image__title .title,
.service-hero-image__sensitiveContent .title {
  color: #0b463d;
}

.service-hero-image h1.sensitiveContent {
  font-family: barnardos-speak, sans-serif;
}

.service-hero-image__banner {
  min-height: 16rem;
  position: relative;
}

@media screen and (min-width: 1024px) {
  .service-hero-image__banner {
    min-height: 27.75rem;
  }
}

.service-hero-image__image {
  height: 100%;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
}

.service-hero-image__image img {
  height: auto;
  width: 100%;
}

.service-hero-image--focus-right .service-hero-image__image img {
  object-position: 75% 40%;
}

@supports (object-fit: cover) and (object-position: 50% 50%) {
  .service-hero-image__image img {
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
  }
}
