/* Carrossel de serviços e parceiros (ver /carrossel.js). */
.ns-car {
  --ns-gap: 20px;
  position: relative;
  width: 100%;
  min-width: 0;
}
.ns-car > .ns-car__track {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--ns-gap) !important;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  /* espaço para a sombra dos cards não ser cortada */
  padding: 8px 4px 16px !important;
  margin: -8px -4px 0 !important;
  max-width: none !important;
  width: auto !important;
}
.ns-car > .ns-car__track::-webkit-scrollbar {
  display: none;
}
.ns-car > .ns-car__track > .ns-car__slide {
  flex: 0 0 calc((100% - (var(--ns-por-vez, 1) - 1) * var(--ns-gap)) / var(--ns-por-vez, 1)) !important;
  max-width: calc((100% - (var(--ns-por-vez, 1) - 1) * var(--ns-gap)) / var(--ns-por-vez, 1)) !important;
  min-width: 0;
  scroll-snap-align: start;
}
.ns-car > .ns-car__track > .ns-ancora-legada {
  display: none;
}
/* Animações de entrada do Elementor não disparam em slides fora da tela: mostra tudo. */
.ns-car .elementor-invisible {
  visibility: visible !important;
  opacity: 1 !important;
  animation: none !important;
}

.ns-car__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-top: 18px;
}
.ns-car__nav[hidden] {
  display: none;
}
/* Seletores com "button" e !important: o tema pinta todo <button> de verde e quadrado. */
.ns-car button.ns-car__seta {
  width: 44px !important;
  height: 44px !important;
  min-height: 0 !important;
  border-radius: 50% !important;
  border: 1px solid #d6dbe6 !important;
  background: #fff !important;
  color: #152ad6 !important;
  font: 600 26px/1 "Figtree", sans-serif !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 0 3px !important;
  margin: 0 !important;
  box-shadow: 0 4px 14px rgba(11, 22, 115, 0.08) !important;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.ns-car button.ns-car__seta:hover:not(:disabled) {
  background: #152ad6 !important;
  border-color: #152ad6 !important;
  color: #fff !important;
}
.ns-car button.ns-car__seta:disabled {
  opacity: 0.35;
  cursor: default;
}
.ns-car__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  max-width: 75%;
}
.ns-car button.ns-car__dot {
  width: 10px !important;
  height: 10px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #c9cfdc !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: width 0.2s, background 0.2s;
}
.ns-car button.ns-car__dot[aria-current="true"] {
  width: 26px !important;
  background: #15d648 !important;
}
.ns-car button.ns-car__seta:focus-visible,
.ns-car button.ns-car__dot:focus-visible {
  outline: 3px solid #15d648;
  outline-offset: 2px;
}

/* Home e Contato: a grade de serviços antiga (4+4+2) dá lugar ao carrossel. */
.elementor-2 .elementor-element.elementor-element-5dd4f585 > .ns-car,
.elementor-12076 .elementor-element.elementor-element-18f02df > .ns-car {
  max-width: var(--content-width, 1200px);
  margin: 0 auto;
}

/* Página de Serviços: um serviço por vez, ocupando a largura toda. */
.ns-servicos-carrossel {
  width: 100%;
}
.ns-car > .ns-servicos-carrossel {
  --ns-gap: 0px;
  padding: 0 !important;
  margin: 0 !important;
}
.ns-car:has(> .ns-servicos-carrossel) {
  --ns-gap: 0px;
  padding-bottom: 32px;
}

@media (max-width: 767px) {
  .ns-car { --ns-gap: 14px; }
  .ns-car__dots { max-width: 66%; gap: 6px; }
  .ns-car button.ns-car__dot { width: 8px !important; height: 8px !important; }
  .ns-car button.ns-car__dot[aria-current="true"] { width: 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .ns-car > .ns-car__track { scroll-behavior: auto; }
}

/* Cards de serviço (Home e Contato): a descrição não pode encostar no círculo verde do canto. */
.elementor-2 .elementor-element.elementor-element-5dd4f585 .ns-car__slide .elementor-icon-box-description,
.elementor-12076 .elementor-element.elementor-element-18f02df .ns-car__slide .elementor-icon-box-description {
  max-width: 62%;
}
@media (max-width: 767px) {
  .elementor-2 .elementor-element.elementor-element-5dd4f585 .ns-car__slide .elementor-icon-box-description,
  .elementor-12076 .elementor-element.elementor-element-18f02df .ns-car__slide .elementor-icon-box-description {
    max-width: 100%;
  }
}
