/**
 * CSS Carousel - versão compatível com todos navegadores modernos.
 */

.css-carousel {
  position: relative;
  width: 100%;

  /* Valores padrão (podem ser sobrescritos pelos controles do Elementor) */
  --slide-width: 200px;
  --slide-height: auto;
  --slides-gap: 0px;

  --scroll-button-start-width: 40px;
  --scroll-button-start-height: 40px;
  --scroll-button-end-width: 40px;
  --scroll-button-end-height: 40px;

  --scroll-button-start-spacing: 8px;
  --scroll-button-end-spacing: 8px;

  --scroll-button-start-disabled-opacity: 0.5;
  --scroll-button-end-disabled-opacity: 0.5;

  --scroll-marker-group-spacing: 10px;
  --scroll-marker-group-gap: 10px;
  --scroll-marker-width: 8px;
  --scroll-marker-height: 8px;
  --scroll-marker-current-bg: #000000;
}

/* Track / lista de slides */
.css-carousel .carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: var(--slide-width);
  gap: var(--slides-gap);

  overflow-x: auto;
  overscroll-behavior-inline: contain;

  scroll-snap-type: x mandatory;
  scroll-snap-stop: always;
  scroll-behavior: smooth;

  list-style: none;
  padding: 0;
  margin: 0;

  scrollbar-width: none;
  /* Firefox */
}

.css-carousel .carousel::-webkit-scrollbar {
  display: none;
  /* WebKit (Chrome, Safari, Edge) */
}

/* Slide */
.css-carousel__slide {
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

.css-carousel__slide img {
  display: block;
  width: 100%;
  height: var(--slide-height);
  object-fit: cover;
  object-position: center center;
}

/* BOTÕES PREV / NEXT ------------------------------------- */

.css-carousel__button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  padding: 0;
  border-radius: 999px;
  cursor: pointer;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  background-color: rgba(0, 0, 0, 0.5);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  color: #ffffff;
}

/* Botão Previous */
.css-carousel__button--prev {
  left: var(--scroll-button-start-spacing);
  width: var(--scroll-button-start-width);
  height: var(--scroll-button-start-height);
  background-image: var(--scroll-button-start-image);
}

.css-carousel__button--prev:disabled {
  opacity: var(--scroll-button-start-disabled-opacity);
}

/* Botão Next */
.css-carousel__button--next {
  right: var(--scroll-button-end-spacing);
  width: var(--scroll-button-end-width);
  height: var(--scroll-button-end-height);
  background-image: var(--scroll-button-end-image);
}

.css-carousel__button--next:disabled {
  opacity: var(--scroll-button-end-disabled-opacity);
}

/* MARCADORES / DOTS -------------------------------------- */

.css-carousel__markers {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--scroll-marker-group-spacing);

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--scroll-marker-group-gap);

  padding: 4px 8px;
}

.css-carousel__marker {
  width: var(--scroll-marker-width);
  height: var(--scroll-marker-height);
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.4);
  background-color: rgba(255, 255, 255, 0.8);

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  cursor: pointer;
  padding: 0;
}

.css-carousel__marker.is-active {
  background-color: var(--scroll-marker-current-bg);
}

/* Quando usar imagens como marcadores, removemos fundo e borda por padrão */
.css-carousel[data-markers-image="true"] .css-carousel__marker {
  background-color: transparent;
  border: none;
}

/* Pequeno ajuste em mobile (opcional) */
@media (max-width: 767px) {
  .css-carousel__button {
    width: 32px;
    height: 32px;
  }
}