.elp-html-block,
.elp-banners {
  box-sizing: border-box;
  clear: both;
  margin-block: 1.5rem;
  width: 100%;
}

.elp-html-block--nav {
  display: flex;
  margin-block: 0;
}

.elp-html-block__title,
.elp-banners__title {
  margin: 0 0 1rem;
}

.elp-banners__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.elp-banner {
  background: var(--bs-body-bg, #fff);
  border-radius: var(--bs-border-radius, .375rem);
  box-sizing: border-box;
  color: var(--bs-body-color, #212529);
  min-width: 0;
  overflow: hidden;
  position: relative;
}

.elp-banner__media,
.elp-banner__image-link {
  display: block;
  height: 100%;
  width: 100%;
}

.elp-banner__image {
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: cover;
  width: 100%;
}

.elp-banner__caption {
  align-items: flex-start;
  display: flex;
  flex-direction: column;
  gap: .5rem;
  inset: auto 0 0;
  padding: 1rem;
}

.elp-banner__title,
.elp-banner__subtitle {
  color: inherit;
  margin: 0;
}

.elp-banner__label {
  background: var(--bs-primary, #0d6efd);
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: .75rem;
  font-weight: 600;
  padding: .25rem .625rem;
}

.elp-banner--text-white { color: #fff; }
.elp-banner--text-black { color: #000; }
.elp-banner--align-center .elp-banner__caption { align-items: center; text-align: center; }
.elp-banner--align-end .elp-banner__caption { align-items: flex-end; text-align: end; }
.elp-banner--valign-top .elp-banner__caption { inset: 0 0 auto; position: absolute; }
.elp-banner--valign-middle .elp-banner__caption { inset: 50% 0 auto; position: absolute; transform: translateY(-50%); }
.elp-banner--valign-bottom .elp-banner__caption { inset: auto 0 0; position: absolute; }

.banner__effect--01 .elp-banner__image,
.banner__effect--02 .elp-banner__image {
  transition: transform .3s ease;
}

.banner__effect--01:hover .elp-banner__image { transform: scale(1.03); }
.banner__effect--02:hover .elp-banner__image { transform: scale(1.03) rotate(.25deg); }

.elp-banner-slider {
  overflow: hidden;
  position: relative;
}

.elp-banner-slider__track {
  display: grid;
}

.elp-banner--slide {
  display: none;
  grid-area: 1 / 1;
}

.elp-banner--slide.is-active {
  display: block;
}

.elp-banner-slider__controls {
  align-items: center;
  display: flex;
  gap: .75rem;
  justify-content: center;
  margin-top: .75rem;
}

.elp-banner-slider__button {
  align-items: center;
  background: var(--bs-primary, #0d6efd);
  border: 0;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: inline-flex;
  font-size: 1.5rem;
  height: 2.5rem;
  justify-content: center;
  line-height: 1;
  width: 2.5rem;
}

@media (min-width: 768px) {
  .elp-banners__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .elp-banners__grid > .elp-banner { grid-column: span 6; }
  .elp-grid-span-1 { width: 8.333333%; }
  .elp-grid-span-2 { width: 16.666667%; }
  .elp-grid-span-3 { width: 25%; }
  .elp-grid-span-4 { width: 33.333333%; }
  .elp-grid-span-5 { width: 41.666667%; }
  .elp-grid-span-6 { width: 50%; }
  .elp-grid-span-7 { width: 58.333333%; }
  .elp-grid-span-8 { width: 66.666667%; }
  .elp-grid-span-9 { width: 75%; }
  .elp-grid-span-10 { width: 83.333333%; }
  .elp-grid-span-11 { width: 91.666667%; }
  .elp-grid-span-12 { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .elp-banner__image { transition: none !important; }
}
