.dart-layout .layout-builder-block {
  padding: 0;
}

.dart-layout.has-background .layout-builder-block {
  background: none;
  border: 1px solid;
}

.dart-layout .has-bg-media.layout-builder-block {
  background: none;
}

.dart-layout.has-background .layout-bg-content-container {
  padding: 2rem 0 4rem;
}

.layout-bg-overlay {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.layout-bg-section {
  overflow: hidden;
}

.layout-bg-section,
.layout-bg-section * {
  box-sizing: border-box;
}

.layout-bg-row {
  width: 200%;
  display: flex;
  flex-wrap: wrap;
}

.layout-bg-row > * {
  position: relative;
  width: 50%;
  min-height: 1px;
}

.layout-bg-content-container {
  transform: translateX(-100%);
}

.layout-bg-content-container.center-content {
  display: flex;
  align-items: center;
  justify-content: center;
}

.layout-bg-content-container.set-text-color
  a:not(.js-layout-builder-block-link),
.layout-bg-content-container.set-text-color
  a:not(.js-layout-builder-block-link):hover,
.layout-bg-content-container.set-text-color
  a:not(.js-layout-builder-block-link):active,
.layout-bg-content-container.set-text-color
  a:not(.js-layout-builder-block-link):visited {
  color: inherit;
}

.layout-bg-content-container.set-text-color.link-underline a,
.layout-bg-content-container.set-text-color.link-underline a:hover,
.layout-bg-content-container.set-text-color.link-underline a:active,
.layout-bg-content-container.set-text-color.link-underline a:visited {
  text-decoration: underline;
}

.layout-bg-bg-container * {
  height: 100% !important;
  float: none !important;
}

.layout-bg-bg-container *::after,
.layout-bg-bg-container *::before {
  content: none;
}

.layout-bg-bg-wrapper img,
.layout-bg-bg-wrapper video {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

/* No minimum height. BG acts like CSS bg. */
.layout-bg-bg-wrapper.absolute-image {
  position: absolute;
  width: 100%;
  height: 100%;
}

.layout-bg-bg-wrapper.static-image img {
  display: block;
}

/* Utility classes */
.grid-row {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
}

.grid-row .col {
  flex-grow: 0;
}

.grid-row.has-multi-rows {
  flex-flow: row wrap;
}

/* Add 80px of bottom padding to the last layout on mobile only */
@media screen and (max-width: 960px) {
  .grid-row {
    flex-flow: column wrap;
  }

  .dart-layout:last-of-type .grid-row .col {
    margin-bottom: 5rem;
  }
}

.grid-row.f-align-top {
  align-items: flex-start;
}

.grid-row.f-align-center {
  align-items: center;
}

.grid-row.f-align-bottom {
  align-items: flex-end;
}

.grid-row.justify-full {
  justify-content: space-between;
}

.grid-row.justify-right {
  justify-content: flex-end;
}

.grid-row.justify-center {
  justify-content: center;
}

.grid-row.column-borders .col__content {
  border-top: 1px solid;
  padding-top: 40px;
  padding-bottom: 40px;
}

/* Margins */
.layout.margin-top--sm {
  margin-top: 4rem;
}

.layout.margin-bottom--sm {
  margin-bottom: 4rem;
}

.layout.margin-top--md {
  margin-top: 6rem;
}

.layout.margin-bottom--md {
  margin-bottom: 6rem;
}

.layout.margin-top--lg {
  margin-top: 8rem;
}

.layout.margin-bottom--lg {
  margin-bottom: 8rem;
}

/* Margins on mobile */
@media screen and (max-width: 768px) {
  .layout.margin-top--sm,
  .layout.margin-top--md,
  .layout.margin-top--lg {
    margin-top: 2rem;
  }

  .layout.margin-bottom--sm,
  .layout.margin-bottom--md,
  .layout.margin-bottom--lg {
    margin-bottom: 2rem;
  }
}

/* Standard vertical spacing for multi-row grid */
.layout--threecol .grid-row.has-multi-rows .col {
  margin-bottom: 5rem;
}

.layout--fourcol .grid-row.has-multi-rows .col {
  margin-bottom: 2.5rem;
}

/* Sticky columns */
@supports (position: sticky) {
  .is-sticky .col__content {
    transition: top 0.5s cubic-bezier(0.215, 0.61, 0.355, 1);
  }

  @media screen and (min-width: 961px) {
    .sticky--right .layout__region--second .col__content,
    .sticky--left .layout__region--first .col__content {
      position: sticky;
      top: 110px;
    }

    .js-is-sticky .sticky--right .layout__region--second .col__content,
    .js-is-sticky .sticky--left .layout__region--first .col__content {
      top: 110px;
    }
  }
}

/* 2 column content padding */
@media screen and (min-width: 961px) {
  .is-sticky.first-is-larger.first-is-text .layout__region--first .col__content,
  .is-sticky.second-is-larger.second-is-text
    .layout__region--second
    .col__content {
    padding-top: 80px;
  }

  .first-is-larger.first-is-image .layout__region--second,
  .second-is-larger.second-is-image .layout__region--first {
    display: flex;
    align-items: center;
  }

  .is-sticky.first-is-larger.first-is-image
    .layout__region--second
    .col__content,
  .is-sticky.second-is-larger.second-is-image
    .layout__region--first
    .col__content {
    padding-top: 37px;
    padding-bottom: 37px;
  }

  .sticky--right.second-is-much-larger.first-is-mixed-elements
    .layout__region--first
    .col__content
    .block-basic:not(:first-of-type) {
    padding-top: 100px;
  }
}

.sticky--left img,
.sticky--right img {
  position: static;
}

.second-is-video .block-media-embed .field__item,
.first-is-video .block-media-embed .field__item {
  position: relative;
  max-width: 100%;
  height: 0;
  overflow: hidden;
  padding-bottom: 56.25%;
}

.first-is-video .block-media-embed iframe,
.first-is-video .block-media-embed video,
.first-is-video .block-media-embed object,
.first-is-video .block-media-embed embed,
.second-is-video .block-media-embed iframe,
.second-is-video .block-media-embed video,
.second-is-video .block-media-embed object,
.second-is-video .block-media-embed embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.is-sticky .media--type-remote-video .field--name-field-media-oembed-video {
  display: block;
}
