/**
 * @file
 * Breakpoints
 *
 * With these breakpoints we will define how the page layout works.
 * For reference, below are the grid default breakpoints and max-widths defined by Bootstrap 4.
 * https://getbootstrap.com/docs/4.4/layout/grid/#grid-tiers
 *
 * $grid-breakpoints: (
 *   xs: 0,
 *   sm: 576px,
 *   md: 768px,
 *   lg: 992px,
 *   xl: 1200px
 * );
 *
 * $container-max-widths: (
 *   sm: 540px,
 *   md: 720px,
 *   lg: 960px,
 *   xl: 1140px
 * );
 *
 */

/*
 * Usage:
 * @include breakpoint(md){
 *   background: blue;
 * }
 */

/*
example for $data argument
each breakpoint has a pair of corresponding values
$breakpoints-data: (
  breakpoints: (365px + 20px, 767px, 1023px, 1199px, 1440px - 20px, 1440px + 20px, 1600px),
  values: ((190px, 190px), (400px, 190px), (261px, 194px), (230px, 243px), (266px, 266px), (266px, 266px), (300px, 300px))
);
*/

/*
 * Usage:
 * @include breakpoint(md, 700px){
 *   background: blue;
 * }
 */

/**
* @file
* Colors
*
* Colors variables for the whole project.
*/

/**
* @file
* Common variables
*
* Common variables for the whole project
*/

/**
* @file
* Mixins
*
*/

/*
  example:
  .root-class {
    .element {
      .theme_cat & {
        ...
      }
    }
  }
  will result into
  .theme_cat .root-class .element

  .root-class {
    .element {
      @include insert-into-selector-as-last-but-one(".theme_cat") {
        ...
      }
    }
  }
  will result into
  .root-class .theme_cat .element
*/

/*
  example:
  repeat-last-part-of-selector(".root-class .element", 3);
  returns
  ".root-class .element.element.element"
*/

/*
A simple little SCSS mixin for creating scrim gradients
Inspired by Andreas Larson - https://github.com/larsenwork
https://css-tricks.com/easing-linear-gradients/
https://toward.studio/latest/making-css-gradients-smooth
*/

/*
a W3C Specs compliant way to override legacy CSS while explicitly highlighting the pieces of CSS code where refactoring is needed

example of usage:

.page {
  .container {
    &__item {
      @include increase-specificity-by-repeating(3) {
        ...
      }
    }
  }
}

will be built into

.page .container__item.container__item.container__item {
  ...
}

this method of increasing specificity is allowed by CSS Specifications
quote from https://www.w3.org/TR/selectors-3/#specificity:
> Note: Repeated occurrences of the same simple selector are allowed and do increase specificity.
*/

.component--hero-slider {
  position: relative;
}

.component--hero-slider .component--hero {
  margin-bottom: 30px;
}

.component--hero-slider .component--hero .field--name-hero-img-mob {
  margin-top: calc(-40px + (100vw - 200px) / 939 * -80);
}

.component--hero-slider .hero-slick-slider__controls {
  position: relative;
  display: inline-block;
}

.component--hero-slider .hero-slick-slider__controls-wrapper {
  display: flex;
  justify-content: center;
  position: absolute;
  width: 100%;
  bottom: -6px;
  z-index: 1;
}

.component--hero-slider .hero-slick-slider__controls .slick-arrow {
  position: absolute;
  font-size: 0;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  cursor: pointer;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  transition: -webkit-filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out, -webkit-filter 0.3s ease-in-out;
}

.component--hero-slider .hero-slick-slider__controls .slick-arrow:hover {
  -webkit-filter: none;
          filter: none;
}

.component--hero-slider .hero-slick-slider__controls .slick-prev {
  left: 0;
  background: url("../../../images/icons/icon-red-left-arrow.svg") center center/20px 20px no-repeat;
}

.component--hero-slider .hero-slick-slider__controls .slick-next {
  right: 0;
  background: url("../../../images/icons/icon-red-right-arrow.svg") center center/20px 20px no-repeat;
}

.component--hero-slider .hero-slick-slider__controls .slick-dots {
  display: flex;
  padding: 6px 33px 0;
}

.component--hero-slider .hero-slick-slider__controls .slick-dots li {
  height: 12px;
  width: 12px;
  background-color: #3a3533;
  border-radius: 50%;
  display: inline-block;
  opacity: 1;
  margin: 0 20px 0 0;
  cursor: pointer;
}

.component--hero-slider .hero-slick-slider__controls .slick-dots li:last-child {
  margin: 0;
}

.component--hero-slider .hero-slick-slider__controls .slick-dots li.slick-active {
  background-color: #e91c24;
}

.component--hero-slider .hero-slick-slider__controls .slick-dots li button {
  display: none;
}

.component--hero-slider .carousel-indicators {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}

.component--hero-slider .carousel-indicators li {
  height: 12px;
  width: 12px;
  background-color: #3a3533;
  border-radius: 50%;
  display: inline-block;
  opacity: 1;
  margin: 0 20px 0 0;
}

.component--hero-slider .carousel-indicators li:last-child {
  margin: 0;
}

.component--hero-slider .carousel-indicators li.active {
  background-color: #e91c24;
}

.component--hero-slider .carousel-indicators.hide {
  display: none;
}

.component--hero-slider .carousel-indicators .carousel-control-prev,
.component--hero-slider .carousel-indicators .carousel-control-next {
  opacity: 1;
  transition: none;
  width: 24px;
  height: 24px;
  top: 50%;
  -webkit-transform: translate3d(0, -50%, 0);
          transform: translate3d(0, -50%, 0);
  cursor: pointer;
  -webkit-filter: grayscale(100%);
          filter: grayscale(100%);
  transition: -webkit-filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out;
  transition: filter 0.3s ease-in-out, -webkit-filter 0.3s ease-in-out;
}

.component--hero-slider .carousel-indicators .carousel-control-prev:hover,
.component--hero-slider .carousel-indicators .carousel-control-next:hover {
  -webkit-filter: none;
          filter: none;
}

.component--hero-slider .carousel-indicators .carousel-control-prev span,
.component--hero-slider .carousel-indicators .carousel-control-next span {
  visibility: hidden;
}

.component--hero-slider .carousel-indicators .carousel-control-prev {
  left: -33px;
  background: url("../../../images/icons/icon-red-left-arrow.svg") center center/20px 20px no-repeat;
}

.component--hero-slider .carousel-indicators .carousel-control-next {
  right: -13px;
  background: url("../../../images/icons/icon-red-right-arrow.svg") center center/20px 20px no-repeat;
}

.component--hero {
  position: relative;
  display: flex;
  flex-direction: column;
  text-align: center;
  background-color: #f9f9f9;
}

.component--hero .hero--content-area {
  padding: 30px 5% 0;
  position: relative;
  z-index: 1;
}

.component--hero .hero__spacer {
  display: none;
}

.component--hero .hero--content-area--label-logo {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-wrap: wrap;
}

.component--hero .hero--content-area--label-logo img {
  max-height: 65px;
  height: 100%;
  width: auto;
  max-width: 180px;
}

.component--hero .hero--content-area--label-logo .hero--content-area--label {
  display: block;
  width: 100%;
}

.component--hero .hero--content-area--label-logo .hero--content-area--label.h4 {
  font-size: 1.25rem;
  margin-right: 30px;
}

.component--hero .hero--content-area--label-logo .hero--content-area--label:not(:only-child) {
  margin-top: 10px;
}

.component--hero .hero--content-area--title {
  margin: 20px 0;
  line-height: 2.8125rem;
}

.component--hero .hero--content-area--intro {
  display: none;
  font-size: 1rem;
  line-height: 1.5rem;
}

.component--hero .hero--content-area--intro .text-formatted p {
  margin-bottom: 0;
}

.component--hero .hero--content-area--cta-label {
  flex: none;
  margin: 0 0 10px 0;
  font-size: 1rem;
  line-height: 1.5rem;
}

.component--hero .hero--content-area--cta-links .field__items {
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
  font-size: 1rem;
  line-height: 1.5rem;
}

.component--hero .hero--content-area--cta-links .field__items .field__item {
  margin: 0 20px 0 0;
}

.component--hero .hero--content-area--cta-links .field__items .field__item:last-child {
  margin: 0;
}

.component--hero .hero--main-image {
  width: 100%;
}

.component--hero .hero--main-image .field--type-image {
  width: 100%;
}

.component--hero .hero--main-image img {
  width: 100%;
}

@media (min-width: 992px) {
  .component--hero-slider .component--hero {
    margin-bottom: 0;
  }

  .component--hero-slider .component--hero .field--name-hero-img-mob {
    margin-top: 0;
  }

  .component--hero-slider .hero-slick-slider__controls-wrapper {
    justify-content: flex-start;
    bottom: 14px;
    left: 0;
  }

  .component--hero-slider .carousel-indicators {
    position: absolute;
    bottom: 0;
    justify-content: flex-start;
    margin: 0 0 20px 60px;
  }

  .component--hero {
    flex-direction: row;
    justify-content: flex-end;
    text-align: left;
  }

  .component--hero .hero--content-area {
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    padding: 0;
  }

  .component--hero .hero__spacer {
    display: block;
    box-sizing: border-box;
    height: 10%;
    float: right;
    clear: right;
  }

  .component--hero .hero__spacer_1 {
    width: 100px;
  }

  .component--hero .hero__spacer_2 {
    width: 129px;
  }

  .component--hero .hero__spacer_3 {
    width: 158px;
  }

  .component--hero .hero__spacer_4 {
    width: 187px;
  }

  .component--hero .hero__spacer_5 {
    width: 216px;
  }

  .component--hero .hero__spacer_6 {
    width: 245px;
  }

  .component--hero .hero__spacer_7 {
    width: 274px;
  }

  .component--hero .hero__spacer_8 {
    width: 303px;
  }

  .component--hero .hero__spacer_9 {
    width: 332px;
  }

  .component--hero .hero__spacer_10 {
    width: 361px;
  }

  .component--hero .hero--content-area--info {
    position: relative;
    top: calc(50% - 15px);
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }

  .component--hero .hero--content-area--label-logo {
    justify-content: flex-start;
    margin-bottom: 20px;
  }

  .component--hero .hero--content-area--label-logo img {
    max-height: 5.63vw;
  }

  .component--hero .hero--content-area--title {
    line-height: 1.1;
    padding-bottom: 3px;
    margin-bottom: 17px;
    margin-top: 0;
  }

  .component--hero .hero--content-area--intro {
    display: flex;
    margin-bottom: 30px;
  }

  .component--hero .hero--content-area--cta {
    display: flex;
    align-items: center;
  }

  .component--hero .hero--content-area--cta-label {
    margin: 0 10px 0 0;
  }

  .component--hero .hero--content-area--cta-links .field__items {
    margin-bottom: 0;
  }

  .component--hero .hero--main-image {
    width: auto;
  }
}

@media (min-width: 992px) and (min-width: 1460.1px) {
  .component--hero .hero__spacer {
    margin-left: 100px;
  }

  .component--hero .hero__spacer {
    margin-right: 460px;
  }
}

@media (min-width: 1440px) {
  .component--hero .hero--content-area--label-logo img {
    max-height: none;
    height: auto;
  }
}

@media (min-width: 1460.1px) {
  .component--hero-slider .hero-slick-slider__controls-wrapper {
    margin-left: 60px;
  }

  .component--hero .hero--content-area--info {
    margin-left: 60px;
  }

  .component--hero .hero--content-area--title {
    font-size: 46px;
  }

  .component--hero .hero--main-image img {
    height: 540px;
  }
}

@media (max-width: 991px) {
  .component--hero-slider .hero-slick-slider__controls-wrapper {
    margin-left: 0px;
  }

  .component--hero .hero--content-area--info {
    margin-left: 0px;
  }

  .component--hero .hero--content-area--title {
    font-size: 35px;
  }

  .component--hero .hero--main-image img {
    height: auto;
  }
}

@media (min-width: 991.1px) and (max-width: 1460px) {
  .component--hero-slider .hero-slick-slider__controls-wrapper {
    margin-left: calc(18px + (100vw - 991px) / 469 * 42);
  }

  .component--hero .hero--content-area--info {
    margin-left: calc(18px + (100vw - 991px) / 469 * 42);
  }

  .component--hero .hero--content-area--title {
    font-size: calc(35px + (100vw - 991px) / 469 * 11);
  }

  .component--hero .hero--main-image img {
    height: calc(500px + (100vw - 991px) / 469 * 40);
  }
}

@media (min-width: 992px) and (max-width: 991px) {
  .component--hero .hero__spacer {
    margin-left: 0px;
  }

  .component--hero .hero__spacer {
    margin-right: 0;
  }
}

@media (min-width: 992px) and (min-width: 991.1px) and (max-width: 1130px) {
  .component--hero .hero__spacer {
    margin-left: calc(35px + (100vw - 991px) / 139 * 15);
  }
}

@media (min-width: 992px) and (min-width: 1130.1px) and (max-width: 1460px) {
  .component--hero .hero__spacer {
    margin-left: calc(60px + (100vw - 1130px) / 330 * 40);
  }
}

@media (min-width: 992px) and (min-width: 991.1px) and (max-width: 1460px) {
  .component--hero .hero__spacer {
    margin-right: calc(340px + (100vw - 991px) / 469 * 120);
  }
}