.o-banner {
  --block-margin: var(--spacing-xl);
  --layout-section-padding: var(--spacing-xl);
  --min-height: 0;
  display: flex;
  align-items: center;
  position: relative;
  margin-block: var(--block-margin);
}
.o-banner p:first-child {
  margin-top: 0;
}
.o-banner p:last-child {
  margin-bottom: 0;
}
.o-banner__inner {
  min-height: var(--min-height);
  border-radius: var(--border-radius-24);
  overflow: clip;
  position: relative;
}
.o-banner__size--small, .o-banner__size--medium, .o-banner__size--large {
  --block-padding: 0;
}
.o-banner__size--xsmall {
  --min-height: 25rem;
}
.o-banner__size--small {
  --min-height: 30rem;
}
.o-banner__size--medium {
  --min-height: 50rem;
}
.o-banner__size--large {
  --min-height: 100vh;
}
.o-banner__first-section-on-page.o-banner__size--large {
  --min-height: calc(100vh - var(--header-height));
}
.o-banner__background-media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: block;
  object-fit: cover;
}
.o-banner__background-media .o-banner__video {
  height: 100%;
  width: 100%;
  position: relative;
}
.o-banner__background-media .o-banner__video video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
}
.o-banner__background-media .o-banner__image {
  width: 100%;
  height: 100%;
  position: relative;
}
.o-banner__background-media .o-banner__image img {
  object-fit: cover;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
}
.o-banner__background-media .o-banner__image svg {
  width: 100%;
  height: 100%;
}
.o-banner__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
  background: rgba(var(--color-black), 0.2);
  border-radius: var(--border-radius);
}
.o-banner__constrict .o-banner__inner {
  padding-left: var(--spacing-sm);
  padding-right: var(--spacing-sm);
}
@media screen and (min-width: 990px) {
  .o-banner__constrict .o-banner__inner {
    padding-left: var(--layout-section-padding);
    padding-right: var(--layout-section-padding);
  }
}
.o-banner__content {
  display: grid;
  gap: var(--spacing-md);
}
.o-banner__content-wrapper {
  position: relative;
  z-index: 8;
}
.o-banner__inner {
  z-index: 5;
  display: flex;
  width: 100%;
}
.o-banner__page-width .o-banner__image img,
.o-banner__page-width .o-banner__image svg {
  border-radius: 0;
}
.o-banner__page-width .o-banner__video video {
  border-radius: 0;
}
.o-banner__page-width .o-banner__overlay {
  border-radius: 0;
}
