/* stylelint-disable scss/operator-no-unspaced */
/* stylelint-enable scss/operator-no-unspaced */
/* Breakpoint viewport sizes and media queries.

Breakpoints are defined as a map of (name: minimum width), order from small to large:
   (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)

 The map defined in the `$breakpoint` global variable is used as the `$breakpoints` argument by default.

 Name of the next breakpoint, or null for the last breakpoint.

  >> breakpoint-next(sm)
   md
  >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
   md
  >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
   md
*/
/* Minimum breakpoint width. Null for the smallest (first) breakpoint.
    >> ecl-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
    576px
*/
/* Maximum breakpoint width. Null for the largest (last) breakpoint.
   The maximum value is calculated as the minimum of the next one less 0.1.

   >> ecl-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
   767px
*/
/* Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.
    Useful for making responsive utilities.

    >> infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
    ""  (Returns a blank string)
    >> infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
    "-sm"
*/
/**
 * Banner component
 * @define banner; weak
 */
.ecl-banner {
  align-items: center;
  border-radius: 8px;
  box-shadow: 0 0 6px rgba(9, 49, 142, 0.2);
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-bottom: 0;
  -webkit-margin-end: 0;
          margin-inline-end: 0;
  margin-top: 0;
  overflow: hidden;
  position: relative;
}

.ecl-banner__credit {
  background: rgba(0, 0, 0, 0.54);
  color: #fff;
  font: normal normal 400 0.875rem/1rem arial, sans-serif;
  padding: 0.25rem 0.5rem;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.ecl-container .ecl-banner:not(.ecl-banner--full-width) .ecl-container {
  -webkit-padding-start: 1.5rem;
          padding-inline-start: 1.5rem;
  -webkit-padding-end: 1.5rem;
          padding-inline-end: 1.5rem;
}

.ecl-banner__container {
  display: flex;
  padding-bottom: 1.5rem;
  padding-top: 1.5rem;
  width: 100%;
}

.ecl-banner__content {
  align-items: start;
  box-sizing: content-box;
  display: inline-flex;
  flex-direction: column;
}

/*
* centered
*/
.ecl-banner--centered .ecl-banner__container {
  justify-content: center;
}
.ecl-banner--centered .ecl-banner__content {
  align-items: center;
  text-align: center;
}

.ecl-banner__image {
  background-size: cover;
  position: relative;
  width: 100%;
}

.ecl-banner__title {
  font: normal normal 400 1.75rem/2rem arial, sans-serif;
  font-weight: 400;
  margin: 0;
}

.ecl-banner__description {
  font: normal normal 400 1.125rem/1.5rem arial, sans-serif;
  font-weight: 400;
  margin-bottom: 0;
  margin-top: 0.5rem;
}

.ecl-banner__cta {
  margin-top: 1.5rem;
}

.ecl-banner__content > *:first-child {
  margin-top: 0;
}

/* stylelint-disable-next-line order/order */
@media (min-width: 996px) {
  .ecl-banner::before,
  .ecl-banner--m::before {
    content: "";
    display: block;
    padding-top: 25%;
    width: 100%;
  }
  .ecl-banner--s::before {
    content: "";
    display: block;
    padding-top: 20%;
    width: 100%;
  }
  .ecl-banner--l::before {
    content: "";
    display: block;
    padding-top: 33%;
    width: 100%;
  }
  .ecl-banner .ecl-container {
    position: absolute;
  }
  .ecl-banner__content {
    max-width: 45.5rem;
  }
}
/* stylelint-disable-next-line order/order */
@media (min-width: 996px) {
  .ecl-banner__title {
    font: normal normal 400 2.625rem/3.25rem arial, sans-serif;
    font-weight: 400;
  }
  .ecl-banner__description {
    font: normal normal 400 1.125rem/1.75rem arial, sans-serif;
    font-weight: 400;
  }
}
/*
  * full width
  */
.ecl-banner--full-width {
  border-radius: 0;
  left: 50%;
  -webkit-margin-start: -50vw;
          margin-inline-start: -50vw;
  width: 100vw;
}

/*
  * variant: plain background
  */
.ecl-banner--plain-background {
  background: linear-gradient(to right, #082b7a 0%, #0e47cb 100%);
}
.ecl-banner--plain-background .ecl-banner__title {
  color: #fff;
}
.ecl-banner--plain-background .ecl-banner__description {
  color: #fff;
}

/*
  * variant: text box
  */
.ecl-banner--text-box .ecl-banner__image {
  border-bottom: 4px solid #fc0;
}
.ecl-banner--text-box .ecl-banner__image::before {
  content: "";
  display: block;
  padding-top: 25%;
  width: 100%;
}
.ecl-banner--text-box .ecl-banner__title {
  color: #171a22;
}
.ecl-banner--text-box .ecl-banner__description {
  color: #515560;
}

/* stylelint-disable-next-line order/order */
@media (min-width: 996px) {
  .ecl-banner--text-box .ecl-banner__container {
    padding-bottom: 0;
    padding-top: 0;
  }
  .ecl-banner--text-box .ecl-banner__image {
    border-bottom-width: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
  }
  .ecl-banner--text-box .ecl-banner__image::before {
    height: 100%;
    padding-top: 0;
  }
  .ecl-banner--text-box .ecl-banner__content {
    background: rgba(255, 255, 255, 0.9);
    border-bottom: 0 solid #fc0;
    -webkit-border-start: 4px solid #fc0;
            border-inline-start: 4px solid #fc0;
    border-radius: 4px;
    padding: 1.5rem;
  }
}
/*
  * variant: image-overlay
  */
.ecl-banner--image-overlay {
  background: linear-gradient(to right, #082b7a 0%, #0e47cb 100%);
}
.ecl-banner--image-overlay .ecl-banner__image {
  border-bottom: 4px solid #fc0;
}
.ecl-banner--image-overlay .ecl-banner__image::before {
  background-color: rgba(0, 0, 0, 0.4);
  border-radius: 8px 8px 0 0;
  content: "";
  display: block;
  padding-top: 25%;
  width: 100%;
}
.ecl-banner--image-overlay .ecl-banner__title {
  color: #fff;
}
.ecl-banner--image-overlay .ecl-banner__description {
  color: #fff;
}

/* stylelint-disable-next-line order/order */
@media (min-width: 996px) {
  .ecl-banner--image-overlay .ecl-banner__image {
    border-bottom-width: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
  }
  .ecl-banner--image-overlay .ecl-banner__image::before {
    border-radius: 8px;
    height: 100%;
    padding-top: 0;
  }
  .ecl-banner--image-overlay .ecl-banner__title,
  .ecl-banner--image-overlay .ecl-banner__description {
    text-shadow: 0 0 4px #000;
  }
}
/*
  * variant: text-highlight
  */
.ecl-banner--text-highlight {
  background: linear-gradient(to right, #082b7a 0%, #0e47cb 100%);
}
.ecl-banner--text-highlight .ecl-banner__image {
  border-bottom: 4px solid #fc0;
}
.ecl-banner--text-highlight .ecl-banner__image::before {
  border-radius: 8px 8px 0 0;
  content: "";
  display: block;
  padding-top: 25%;
  width: 100%;
}
.ecl-banner--text-highlight .ecl-banner__title {
  color: #fff;
}
.ecl-banner--text-highlight .ecl-banner__description {
  color: #fff;
}

/* stylelint-disable-next-line order/order */
@media (min-width: 996px) {
  .ecl-banner--text-highlight .ecl-banner__image {
    border-bottom-width: 0;
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
  }
  .ecl-banner--text-highlight .ecl-banner__image::before {
    border-radius: 8px;
    height: 100%;
    padding-top: 0;
  }
  .ecl-banner--text-highlight .ecl-banner__title-text,
  .ecl-banner--text-highlight .ecl-banner__description-text {
    -webkit-box-decoration-break: clone;
            box-decoration-break: clone;
    background: rgba(0, 0, 0, 0.72);
    padding: 0.25rem 0.5rem;
  }
  .ecl-banner--text-highlight .ecl-banner__title-text {
    line-height: 1.3;
  }
  .ecl-banner--text-highlight .ecl-banner__description-text {
    line-height: 1.5;
  }
}