/*
  Font family is Nunito Sans. Its fallback is Helvetica
*/
/*
  Font sizes have been converted to rem considering a base size of 16px.
*/
/*
*  Z-Index
*  
*  The z-index CSS property sets the z-order of a positioned element and its descendants or flex items. 
*  Overlapping elements with a larger z-index cover those with a smaller one.
*  
*  REF: https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
*  REF: https://www.smashingmagazine.com/2019/04/z-index-component-based-web-application/  
*/
/**
 * Define media query values
 */
:host {
  display: block;
  box-sizing: border-box;
  width: 100%;
  position: relative;
}

.carousel {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 1920px;
  position: relative;
}
.carousel_slide {
  width: 100%;
  position: relative;
  box-sizing: border-box;
  padding: 0 48px;
}
.carousel_slide::after {
  content: "";
  position: absolute;
  inset: -8px;
  border: 2px solid transparent;
  border-radius: 4px;
  pointer-events: none;
}
.carousel_slide:focus-visible {
  outline: none;
}
.carousel_slide:focus-visible::after {
  border-color: var(--color-focus, #c226fb);
}
.carousel_slide_fullwidth {
  padding: 0;
}
.carousel_slide_frame {
  width: 100%;
  display: flex;
  overflow: hidden;
  -webkit-transition: height ease-in-out 0.5s;
  -moz-transition: height ease-in-out 0.5s;
  transition: height ease-in-out 0.5s;
}
.carousel_slide_frame_loading {
  opacity: 0;
  pointer-events: none;
}
.carousel_slide_frame * {
  -webkit-user-select: none;
  /* Safari */
  -ms-user-select: none;
  /* IE 10 and IE 11 */
  user-select: none;
  /* Standard syntax */
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  -o-user-drag: none;
}
.carousel_slide_frame *[slot=loop] {
  display: flex;
  align-items: center;
  position: relative;
  right: 0;
  -webkit-transition: right ease-in-out 0.75s;
  -moz-transition: right ease-in-out 0.75s;
  transition: right ease-in-out 0.75s;
}
.carousel_slide_frame_repeater {
  display: flex;
  align-items: center;
  position: relative;
  right: 0;
  -webkit-transition: right ease-in-out 0.75s;
  -moz-transition: right ease-in-out 0.75s;
  transition: right ease-in-out 0.75s;
}
.carousel_slide_loading {
  opacity: 0;
  pointer-events: none;
  position: absolute;
  inset: 0;
}
.carousel_slide_loading_visible {
  opacity: 1;
  pointer-events: all;
}
.carousel_loading_bar {
  box-sizing: border-box;
  padding: 0 60px;
  margin-top: 8px;
}
.carousel_loading_bar_fullwidth {
  padding: 0 4px;
}
.carousel_buttons {
  position: absolute;
  width: 100%;
  height: 0px;
  top: calc(50% - 20px);
  left: 0;
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
}
.carousel_buttons_fullwidth {
  padding: 0 8px;
}
.carousel_bullets {
  position: relative;
  margin-top: 8px;
}
.carousel_bullets_inside {
  position: absolute;
  bottom: 0px;
  width: 100%;
  margin: 0;
  padding: 0px 16px;
  box-sizing: border-box;
}
.carousel_bullets_card {
  width: fit-content;
  display: inline-flex;
  gap: 8px;
}
.carousel_bullets_card_inside {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  padding: 8px;
  background-color: var(--color-surface-0, white);
}
.carousel_bullets_item {
  width: 16px;
  height: 16px;
  border: 2px solid var(--color-border-1, rgba(0, 0, 0, 0.2));
  border-radius: 50%;
  position: relative;
  transform: rotate(45deg);
  cursor: pointer;
}
.carousel_bullets_item::before {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
}
.carousel_bullets_item::after {
  content: "";
  position: absolute;
  inset: -8px;
  transform: rotate(-45deg);
  border: 2px solid transparent;
  border-radius: 4px;
}
.carousel_bullets_item:focus-visible {
  outline: none;
}
.carousel_bullets_item:focus-visible::after {
  border-color: var(--color-focus, #c226fb);
}
.carousel_bullets_item_active::before {
  background-color: var(--color-primary, #1e6bf1);
}
.carousel_bullets_item_conclude {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid var(--color-content-disable, #595959);
}
.carousel_bullets_item_loader {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid var(--color-primary, #1e6bf1);
  animation: l18 linear;
}

@keyframes l18 {
  0% {
    clip-path: polygon(50% 50%, 0 0, 0 0, 0 0, 0 0, 0 0);
  }
  25% {
    clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 0, 100% 0, 100% 0);
  }
  50% {
    clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 100% 100%, 100% 100%);
  }
  75% {
    clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 100%);
  }
  100% {
    clip-path: polygon(50% 50%, 0 0, 100% 0, 100% 100%, 0 100%, 0 0);
  }
}