/**
 * Makes a unit-based variable unitless
 * @param {number (with units)} $value      The variable that should be converted to unitless
 */
/**
 * Converts a variable (either px, unitless or rem) to a pixel based value. Assumes that 1rem
 * corresponds to 16px.
 * @param {number} $value      The variable that should be converted pixels
 */
/**
 * Creates a variable that represents a fluid value; it grows from $minPropertyValue to
 * $maxPropertyValue while the viewport width is between $minWidth and $maxWidth.
 * Return value always uses the same unit as $min/maxPropertyValue and adds pixel based value
 * depending on screen size.
 * Use rem units for $min/maxPropertyValue for fonts (for accessibility reasons; users can
 * thereby chose their default font size in the OS/browser) and px for layouts.
 * @param {number (px/rem)} $minPropertyValue       Fluid value will correspond to this value if
 *                                                  the viewport has $minWidth and will not fall
 *                                                  below this value
 * @param {number (px/rem)} $maxPropertyValue       Fluid value will correspond to this value if
 *                                                  the viewport has $maxWidth and will go above
 *                                                  this value
 * @param {number (px)} $minWidth                   Fluid value will be $minPropertyValue if the
 *                                                  viewport has this size or is smaller
 * @param {number (px)} $maxWidth                   Fluid value will be $maxPropertyValue if the
 *                                                  viewport has this size or is larger
 */
/**
 * Returns the layout fluid base unit multiplied with the factor provided
 * @param {number} $factor      Factor that the layout's fluid base unit should be multiplied with
 */
.c-hero {
  position: relative;
  margin-bottom: min(96px, max(48px, calc(48px + 0.0556844548 * calc(100vw - 320px))));
  padding: 0;
  display: grid;
  grid-column-gap: calc(min(16px, max(12px, calc(12px + 0.0046403712 * calc(100vw - 320px)))) * 2.5);
  grid-template-columns: repeat(12, 1fr);
}
.c-hero__content {
  grid-column: 3/10;
}
.c-hero__image {
  position: relative;
  line-height: 0;
}
.c-hero__image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 40%, rgba(0, 0, 0, 0) 65%);
  content: "";
  pointer-events: none;
}
.c-hero__wrapper {
  position: relative;
}
.c-hero__title {
  margin-bottom: 0;
}
.c-hero__teaser {
  margin-top: calc(min(16px, max(12px, calc(12px + 0.0046403712 * calc(100vw - 320px)))) * 0.5);
  max-width: 42ch;
  font-family: "Open sans", serif;
  font-size: min(18px, max(18px, calc(18px + 0 * calc(100vw - 320px))));
  line-height: min(26px, max(26px, calc(26px + 0 * calc(100vw - 320px))));
  opacity: 0.9;
}
.c-hero--has-image {
  display: block;
}
.c-hero--has-image .c-hero__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.c-hero--has-image .c-hero__text {
  max-width: 560px;
  padding: calc(min(16px, max(12px, calc(12px + 0.0046403712 * calc(100vw - 320px)))) * 1.5) 0 calc(min(16px, max(12px, calc(12px + 0.0046403712 * calc(100vw - 320px)))) * 2);
  color: #ffffff;
  text-shadow: 0 0.1px 1.4px rgba(0, 0, 0, 0.138), 0 0.1px 3.3px rgba(0, 0, 0, 0.198), 0 0.3px 6.3px rgba(0, 0, 0, 0.245), 0 0.4px 11.2px rgba(0, 0, 0, 0.292), 0 0.8px 20.9px rgba(0, 0, 0, 0.352), 0 2px 50px rgba(0, 0, 0, 0.49);
}