.partners {
  overflow: hidden;
  padding: clamp(3.5rem, 6.6vw, 6rem) 0 clamp(3.75rem, 5vw, 5rem);
  background:
    radial-gradient(ellipse at 50% 15%, rgb(255 255 255 / .96), transparent 60%),
    linear-gradient(135deg, #f5f8fc 0%, #fff 48%, #eef3fa 100%);
  color: #0b204c;
  font-family: var(--font-text);
}

.partners__intro {
  margin: 0 auto clamp(2.5rem, 3.2vw, 3.25rem);
  padding-inline: 1rem;
  text-align: center;
}

.partners__intro h2 {
  margin: 0;
  font: 700 clamp(2.35rem, 4.1vw, 3.6rem)/.99 var(--font-display);
  letter-spacing: -.055em;
}

.partners__intro p {
  margin: 1rem auto 0;
  color: #687997;
  font: 400 clamp(1rem, 1.55vw, 1.35rem)/1.5 var(--font-display);
  letter-spacing: -.025em;
}

.partners__carousel {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr) 3.5rem;
  align-items: center;
  gap: clamp(.5rem, 1.1vw, 1rem);
  width: min(100%, 1370px);
  margin-inline: auto;
  padding-inline: clamp(.75rem, 2vw, 1.5rem);
}

.partners__viewport {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  outline: none;
}

.partners__viewport::-webkit-scrollbar { display: none; }
.partners__viewport:focus-visible { outline: 3px solid #4773b1; outline-offset: 4px; border-radius: 1rem; }

.partners__track {
  display: grid;
  grid-auto-columns: calc((100% - 5 * clamp(.65rem, 1vw, .9rem)) / 6);
  grid-auto-flow: column;
  gap: clamp(.65rem, 1vw, .9rem);
  margin: 0;
  padding: .15rem 0;
  list-style: none;
}

.partners__card {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: clamp(7.25rem, 8.2vw, 9.5rem);
  border: 1px solid #e2e9f3;
  border-radius: 1.25rem;
  background: rgb(255 255 255 / .92);
  box-shadow: 0 8px 24px rgb(28 54 93 / .025);
  scroll-snap-align: start;
}

.partners__logo {
  display: block;
  width: 76%;
  max-width: 8.5rem;
  height: auto;
  max-height: 4.25rem;
  object-fit: contain;
}

.partners__logo--unico { max-width: 7rem; }
.partners__logo--b3 { width: 4.75rem; max-width: 60%; height: 4.1rem; }
.partners__logo--serasa { max-width: 7.5rem; }
.partners__logo--bmp { max-width: 7rem; }

.partners__arrow {
  display: grid;
  place-items: center;
  width: 3.25rem;
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: #102a61;
  box-shadow: 0 5px 20px rgb(19 46 86 / .08);
  cursor: pointer;
  transition: transform .18s ease, opacity .18s ease, box-shadow .18s ease;
}

.partners__arrow svg { width: 1.5rem; height: 1.5rem; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.partners__arrow:hover:not(:disabled) { transform: scale(1.06); box-shadow: 0 8px 24px rgb(19 46 86 / .14); }
.partners__arrow:focus-visible { outline: 3px solid #4773b1; outline-offset: 3px; }
.partners__arrow:disabled { opacity: .48; cursor: default; }

.partners__pagination {
  display: flex;
  justify-content: center;
  gap: .42rem;
  min-height: .5rem;
  margin-top: clamp(1.5rem, 2.5vw, 2rem);
}

.partners__dot {
  width: 1.2rem;
  height: .42rem;
  padding: 0;
  border: 0;
  border-radius: 1rem;
  background: #dce4f0;
  cursor: pointer;
  transition: width .2s ease, background-color .2s ease;
}

.partners__dot[aria-current="true"] { width: 2.25rem; background: #163f80; }
.partners__dot:focus-visible { outline: 2px solid #4773b1; outline-offset: 3px; }

@media (max-width: 900px) {
  .partners__carousel { grid-template-columns: 3rem minmax(0, 1fr) 3rem; gap: .35rem; }
  .partners__track { grid-auto-columns: calc((100% - 2 * .75rem) / 3); gap: .75rem; }
  .partners__card { min-height: 7.5rem; border-radius: 1rem; }
  .partners__arrow { width: 2.7rem; }
}

@media (max-width: 560px) {
  .partners { padding-block: 3.75rem 3.5rem; }
  .partners__intro { margin-bottom: 2rem; }
  .partners__intro h2 { font-size: clamp(2rem, 8.5vw, 2.6rem); }
  .partners__intro p { max-width: 32rem; margin-top: .8rem; font-size: 1rem; }
  .partners__break { display: none; }
  .partners__carousel { grid-template-columns: 2.5rem minmax(0, 1fr) 2.5rem; padding-inline: .55rem; }
  .partners__track { grid-auto-columns: calc((100% - .65rem) / 2); gap: .65rem; }
  .partners__card { min-height: 7rem; }
  .partners__arrow { width: 2.35rem; }
  .partners__arrow svg { width: 1.2rem; height: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .partners__viewport { scroll-behavior: auto; }
  .partners__arrow, .partners__dot { transition: none; }
}
