.r-position--left {
  justify-content: flex-start;
  align-self: flex-start;
  align-items: flex-start;
  text-align: start;
}
.r-position--center, .r-position--center-center {
  justify-content: center;
  align-self: center;
  align-items: center;
  text-align: center;
}
.r-position--right {
  justify-content: flex-end;
  align-self: flex-end;
  align-items: flex-end;
  text-align: end;
}
.r-position--center-left {
  justify-content: center;
  align-items: flex-start;
  text-align: start;
}
.r-position--center-right {
  justify-content: center;
  align-items: flex-end;
  text-align: end;
}

/* stylelint-disable keyframes-name-pattern, custom-property-pattern, scss/percent-placeholder-pattern */
/*
.default-transition {
    @include transition-as(color, red, blue);
}
.transition-with-custom-modifier {
    @include transition-as(color, red, orange, active);
}
.transition-with-super-custom-modifier {
    @include transition-as(color, red) {
        body:has(.selector) & {
            color: green;
        }
    }
}
*/
.r-banner-border__textbox, .r-banner-border__subtitle, .r-banner-border__title, .r-banner-border__link-wrapper, .r-banner-border__image-wrapper, .r-banner-border__controls, .r-banner-border__image, .r-banner-border__ctacontainer {
  grid-row-start: 1;
  grid-column-start: 1;
  position: relative;
}

.r-banner-border__subtitle, .r-banner-border__title {
  font-weight: 300;
  font-family: var(--font-primary);
  word-wrap: break-word;
  line-height: 1.2;
}
.r-banner-border__title {
  font-size: 2rem;
  letter-spacing: 0;
  line-height: 1.25;
}
.r-banner-border__subtitle {
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.005em;
  line-height: 1.75;
}
.r-banner-border__link {
  --link-text-color: var(--module-font-color, var(--color-link-state-rest));
  --link-text-hover-color: var(--color-link-state-hover);
  --link-text-active-color: var(--color-link-state-active);
  --link-text-disabled-color: var(--color-link-state-inactive);
  --link-light-text-color: var(--color-link-light-state-rest);
  --link-offset: 7px;
  --link-width: 1.75rem;
  --link-height: 0.875rem;
  color: var(--link-text-color);
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: 30%;
  text-underline-position: from-font;
  pointer-events: all;
  outline-offset: var(--link-offset);
  max-width: fit-content;
  background: transparent;
  padding-block: var(--link-padding);
  padding-inline: 0;
}
.r-banner-border__link:hover {
  color: var(--link-text-hover-color);
  text-decoration-color: var(--link-text-hover-color);
  text-decoration-line: underline;
}
.r-banner-border__link:active {
  color: var(--link-text-active-color);
  text-decoration-color: var(--link-text-active-color);
}
.r-banner-border__link:disabled {
  color: var(--link-text-disabled-color);
  text-decoration-color: var(--link-text-disabled-color);
}
[aria-disabled=true].r-banner-border__link {
  color: var(--link-text-disabled-color);
  text-decoration-color: var(--link-text-disabled-color);
}
.r-banner-border__link:focus-visible {
  outline: var(--border-link-focused);
  border-radius: var(--border-radius-32);
}
.r-banner-border__link {
  font-family: var(--font-primary);
  line-height: 1;
  word-wrap: break-word;
  font-weight: 600;
  letter-spacing: 0.005em;
  font-size: 1rem;
  --link-offset: 10px;
  --link-width: 2.8125rem;
  --link-height: 2.25rem;
  --link-padding: 14px 10px;
}
.r-banner-border {
  display: flex;
  flex-direction: column;
  position: relative;
  padding-block-start: var(--spacing-2xl);
}
@media (min-width: 64rem) {
  .r-banner-border {
    padding-block-start: 13px;
  }
}
.r-banner-border__layout {
  padding-block-start: 30px;
  margin-block-start: 3.1875rem;
}
@media (min-width: 64rem) {
  .r-banner-border__layout {
    padding-block-end: 72px;
    margin-block-start: 3.875rem;
  }
}
.r-carousel .r-banner-border__layout .r-vimeo {
  max-width: calc(100vw - var(--container-padding-desktop));
  transform: none;
  left: 0;
  justify-content: flex-start;
}
.r-carousel__slides-wrapper .r-banner-border__layout {
  padding-block: 0;
}
@media (min-width: 64rem) {
  .r-carousel__slides-wrapper .r-banner-border__layout {
    padding-block-start: 30px;
  }
}
.r-banner-border__content {
  display: contents;
}
.r-banner-border__content-wrapper {
  width: 100%;
  height: 100%;
}
.r-banner-border__content-wrapper:hover {
  text-decoration: inherit;
}
.r-banner-border__title--box {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
}
.r-banner-border__button {
  width: 100%;
}
@media (min-width: 64rem) {
  .r-banner-border__button {
    width: fit-content;
  }
}
.r-banner-border__link {
  color: var(--module-font-color);
}
@media (min-width: 64rem) {
  .r-banner-border__link {
    font-family: var(--font-primary);
    font-weight: 400;
    word-wrap: break-word;
    letter-spacing: 0.005em;
    font-size: 1.5rem;
    letter-spacing: 0;
    line-height: 1.5;
    --link-offset: 10px;
    --link-width: 1.75rem;
    --link-height: 0.875rem;
    --link-padding: 14px 10px;
  }
}
.r-banner-border__ctacontainer {
  padding-block-start: var(--spacing-2xl);
  padding: 16px;
  width: fit-content;
  height: fit-content;
  margin-block-start: auto;
  margin-right: auto;
  z-index: 2;
}
@media (min-width: 64rem) {
  .r-banner-border__ctacontainer {
    padding: 75px 46px;
    width: fit-content;
    height: fit-content;
    margin-block-start: auto;
  }
}
.r-banner-border__image {
  aspect-ratio: var(--mobile-aspect-ratio);
}
@media (min-width: 64rem) {
  .r-banner-border__image {
    aspect-ratio: var(--desktop-aspect-ratio);
  }
}
.r-banner-border__controls {
  padding-inline-start: 16px;
  padding-inline-end: var(--spacing-2xl);
  padding-block: 16px;
}
@media (min-width: 64rem) {
  .r-banner-border__controls {
    padding: 65px 46px;
  }
}
.r-banner-border__controls .r-vimeo__button {
  color: var(--button-rest-text-color);
  border-color: var(--button-rest-border);
}
.r-banner-border__image-wrapper {
  position: relative;
}
.r-banner-border__link-wrapper {
  max-width: 1475px;
  position: relative;
}
.r-banner-border__title {
  top: -44px;
  margin-inline-start: var(--spacing-4xl);
  display: flex;
  pointer-events: none;
  overflow: hidden;
  max-width: 21.625rem;
}
@media (min-width: 64rem) {
  .r-banner-border__title {
    margin-inline-start: 151px;
    padding-block: 0;
    max-width: 54.9375rem;
    line-height: 1.1;
    font-weight: 300;
    font-family: var(--font-primary);
    word-wrap: break-word;
    line-height: 1.2;
    font-size: 4.5rem;
    letter-spacing: -0.015em;
  }
}
.r-banner-border__subtitle {
  margin-inline-start: var(--spacing-4xl);
  display: flex;
  pointer-events: none;
  overflow: hidden;
  max-width: 100%;
}
@media (min-width: 64rem) {
  .r-banner-border__subtitle {
    margin-inline-start: 151px;
    padding-block: 0;
    font-weight: 300;
    font-family: var(--font-primary);
    word-wrap: break-word;
    line-height: 1.2;
    font-size: 2rem;
    letter-spacing: 0;
    line-height: 1.25;
  }
}
.r-banner-border__textbox {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  height: 100%;
  margin-block-start: -42px;
}
@media (min-width: 64rem) {
  .r-banner-border__textbox {
    margin-block-start: -5.625rem;
  }
}
.r-banner-border__box--single {
  position: absolute;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(2, auto);
  -webkit-background-clip: text;
  align-items: center;
  justify-items: start;
  top: 0;
}
@media (min-width: 64rem) {
  .r-banner-border__box--single {
    top: -55px;
  }
}
.r-banner-border__box--single .r-banner-border__title--A,
.r-banner-border__box--single .r-banner-border__title--B,
.r-banner-border__box--single .r-banner-border__title--C {
  grid-row: 1;
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
  background: linear-gradient(to bottom, var(--bg-color-outside) 50%, var(--bg-color-default) 50%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.r-banner-border__box--single .r-banner-border__title--C {
  padding-block-start: 4px;
  max-width: 19.25rem;
  word-break: break-all;
  padding-inline-start: 3px;
}
@media (min-width: 64rem) {
  .r-banner-border__box--single .r-banner-border__title--C {
    padding-block-start: 15px;
    padding-inline-start: 4px;
    top: -41px;
    max-width: 54.9375rem;
  }
}
.r-banner-border__box--single s {
  display: contents;
}
.r-banner-border__box--double {
  position: absolute;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(4, auto);
  align-items: center;
  justify-items: start;
  pointer-events: none;
}
@media (min-width: 64rem) {
  .r-banner-border__box--double {
    top: -47px;
  }
}
.r-banner-border__box--double .r-banner-border__title--A {
  grid-row: 1/3;
  color: var(--bg-color-default);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
}
@media (min-width: 64rem) {
  .r-banner-border__box--double .r-banner-border__title--A {
    padding-block-end: 8px;
  }
}
.r-banner-border__box--double .r-banner-border__title--B {
  grid-row: 3/5;
  color: var(--bg-color-outside);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}
.r-banner-border__box--double .r-banner-border__title--C {
  grid-row: 5/7;
  color: var(--bg-color-outside);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  top: -40px;
  padding-block-start: 4px;
  max-width: 19.25rem;
  word-break: break-all;
  padding-inline-start: 3px;
}
@media (min-width: 64rem) {
  .r-banner-border__box--double .r-banner-border__title--C {
    padding-block-start: 15px;
    padding-inline-start: 4px;
    max-width: 54.9375rem;
  }
}
.r-banner-border__box--optional {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr;
  align-items: center;
  justify-items: start;
  pointer-events: none;
}
.r-banner-border__box--optional .r-banner-border__title--C {
  grid-row: 4/6;
  color: var(--bg-color-outside);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  max-width: 19.25rem;
  word-break: break-all;
  padding-inline-start: 3px;
}
@media (min-width: 64rem) {
  .r-banner-border__box--optional .r-banner-border__title--C {
    max-width: 54.9375rem;
    padding-inline-start: 4px;
  }
}
.r-banner-border .r-content-carousel .swiper-slide {
  max-width: calc(100vw - var(--container-padding-desktop));
}

.r-carousel__slides-wrapper .r-banner-border {
  height: 100%;
  display: flex;
  justify-content: center;
}
